我正在尝试使用Python 3.8.1和requests将XML文件上传到IIS服务器。我已经使用curl成功完成了多次。这有效:
curl -v -H "Content-Type: text/xml" --data-binary @MS1481_20200204_163918_4461289.xml https://oursever.com/postHere
我尝试上传的XML文件是在程序的前面创建的。文件名是使用一系列串联在一起的字符串动态创建的,包括中间的当前日期和时间。
这是我尝试使用Python上传的方式:
postURL = 'https://oursever.com/postHere'
postXML = {'file': open(xmlfilename, 'rb')}
postResult = requests.post(postURL, files=postXML)
print(postResult)
我继续得到<Response [400]>
。之后,我可以立即使用curl成功上传。建议?
400错误表明您的客户端输入有问题。
是否正确打开并读取了文件?您应该使用with
条件打开它,
with open(path) as f:
print(type(f))
或确保您使用此open(xmlfilename, 'rb').read()
阅读它>
尝试:
postURL = 'https://oursever.com/postHere'
postXML = {'file': open(xmlfilename, 'rb').read()}
postResult = requests.post(postURL, files=postXML)
print(postResult)