带请求的POST XML文件

时间:2016-10-19 19:55:38

标签: python python-requests

我得到了:

<error>You have an error in your XML syntax...

当我运行这个python脚本时,我刚写了(我是新手)

import requests

xml = """xxx.xml"""

headers = {'Content-Type':'text/xml'}

r = requests.post('https://example.com/serverxml.asp', data=xml)

print (r.content);

以下是xxx.xml的内容

<xml>
<API>4.0</API>
<action>login</action>
<password>xxxx</password>
<license_number>xxxxx</license_number>
<username>xxx@xyz.com</username>
<training>1</training>
</xml>

我知道xml是有效的,因为我对perl脚本使用相同的xml并且正在打印内容。

任何帮助都会非常感激,因为我对python很新。

1 个答案:

答案 0 :(得分:3)

您希望将文件中的XML数据提供给requests.post。但是,此功能不会为您打开文件。它希望您将文件对象传递给它,而不是文件名。您需要在调用requests.post。

之前打开该文件

试试这个:

import requests

# Set the name of the XML file.
xml_file = "xxx.xml"

headers = {'Content-Type':'text/xml'}

# Open the XML file.
with open(xml_file) as xml:
    # Give the object representing the XML file to requests.post.
    r = requests.post('https://example.com/serverxml.asp', data=xml)

print (r.content);