【问题标题】:Python: SOAP API not working, what am I doing wrong?Python:SOAP API 不起作用,我做错了什么?
【发布时间】:2019-02-25 17:46:52
【问题描述】:

我正在尝试使用 movildata.com 的 SOAP API 来获取车辆的最后位置,使用 IMEI 和 api 密钥,这是我的代码:

import requests

api_key = 'xxxxxxxxx'
imei = 'xxxxxxxxx'

request = """<?xml version = "1.0" encoding = "utf-8"?>
<soap12: Envelope xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: xsd = "http://www.w3.org/2001/XMLSchema" xmlns: soap12 = "http://www.w3.org/2003/05/soap-envelope">
  <soap12: Body>
    <getLastLocation xmlns = "http://ws.movildata.com/ws/wsUsers">
      <apikey> {0} </ apikey>
      <IMEI> {1} </ IMEI>
    </ getLastLocation>
  </ soap12: Body>
</ soap12: Envelope>
""".format(api_key, imei)

encoded_request = request.encode('utf-8')

headers = {"Host":"ws.movildata.com",
            "Content-Type": "application/soap+xml; charset=utf-8",
            "Content-Length":str(len(encoded_request))
            }

response = requests.post(url='https://ws.movildata.com/wsUsers.asmx?op=getLastLocation', 
                         headers=headers,
                         data=encoded_request
                         )

print(response.content)
print(response.status_code)

这将返回 XML 响应和 HTTP 状态代码 500

soap:ReceiverEl servidor no puede procesar la solicitud。 ---> 取消 nombre no puede empezar con el car\xc3\xa1cter \'\', valor 十六进制 0x20。 L\xc3\xadnea 2, 正位\xc3\xb3n 9.

我是从西班牙语翻译过来的,上面写着类似于

服务器无法处理请求。 --->一个名字不能开始 带有字符'';

我确保request 中没有任何不必要的空白空间,但这似乎并没有改变任何东西,有什么想法我可能做错了吗?

【问题讨论】:

    标签: python xml api soap python-requests


    【解决方案1】:

    我看到您的 XML 格式有几个错误。 尝试按如下所述更正它们。如果仍然收到错误,请在下方评论。

    首先在&lt;soap12:元素的命名空间声明中,xmlnsxsi之间不能有空格。

    全部改正:xmlns:xsixmlns:xsdxmlns:soap12

    &lt;getLastLocation 中,您只有xmlns,没有任何变量名。一些解析器可能不接受它。给一些假名(例如:xmlns:abc)。

    在结束元素中,&lt;/ 和元素名称之间有空格。

    以下全部更正:

    </getLastLocation>
    

    &lt;/soap12:Body&gt;(同时删除:Body之间的空格)

    &lt;/soap12:Envelope&gt;(同时删除:Envelope之间的空格)

    【讨论】:

    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2013-05-16
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多