python请求错误:序言中不允许内容

时间:2019-04-09 18:08:40

标签: python curl python-requests

基本上,如果我运行命令curl:

curl -k -u user:pass --header 'Content-Type: application/xml' --request POST --data '<LocalIDs><LocalID ID="9128615"/></LocalIDs>' --url https://rhtpcapc001:8182/pc/center/webservice/datasources/dataSourceConsoleName/Data%20Aggregator%40RHTPCADA201/itemids

我有以下答案:

<?xml version="1.0" encoding="UTF-8"?><ItemIDResults><ItemIDResult 
LocalID="9528017" ItemID="828570"/></ItemIDResults>

我在python中创建了一个脚本来运行此命令:

#!/usr/bin/python

import requests
import urllib3

urllib3.disable_warnings()

headers = {
'Content-Type': 'application/xml',
}

data = {
'<LocalID ID': '"9528017"/>'
}

response = requests.post('https://rhtpcapc001:8182/pc/center/webservice/datasources/dataSourceConsoleName/Data%20Aggregator%40RHTPCADA201/itemids', headers=headers, data=data, verify=False, auth=('user', 'pass'))

print (response.encoding)
print (response.headers['Content-Type'])
print (response.headers)
print (response.text)
print (response.content)
print (response.reason)`

并给我以下错误:

  

ISO-8859-1文本/纯文本{'Set-Cookie':   'JSESSIONID = md1waumsuoe81jceaxacbqgid; Path = / pc; Secure','Expires':   '1970年1月1日星期四,格林尼治标准时间','内容类型':'文本/纯文本','日期':   '星期二,2019年4月9日10:28:54 GMT','Content-Length':'173','Server':   'Jetty(9.3.5.v20151012)'}发生JAXBException:位于ParseError   [row,col]:[1,1]消息:序言中不允许内容。   在[row,col]:[1,1]消息:序言中不允许内容。   发生b'JAXBException:[row,col]:[1,1] \ nMessage处为ParseError:   序言中不允许包含内容。   [row,col]:[1,1] \ n消息:序言中不允许内容。   请求

我认为问题是编码。当我只运行命令curl时:

命令:

curl -k -u user:pass --header 'Content-Type: application/xml' --request POST --data '<LocalIDs><LocalID ID="9128615"/></LocalIDs>' --url https://rhtpcapc001:8182/pc/center/webservice/datasources/dataSourceConsoleName/Data%20Aggregator%40RHTPCADA201/itemids

输出:

<?xml version="1.0" encoding="UTF-8"?><ItemIDResults><ItemIDResult LocalID="9528017" ItemID="828570"/></ItemIDResults>

在答案中,我们看到编码为=“ UTF-8”

在带有response.encoding的python脚本中,我看到了编码ISO-8859-1

预先感谢您的帮助。

BR

大卫

0 个答案:

没有答案