基本上,如果我运行命令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
大卫