我希望使用requests类从Web获取数据,然后将更改发布到命名空间XML并加载回来。
我可以通过以下方式登录并获取数据:
data_req = requests.get(proj_data_url, headers=headers, auth=(_user, _pw))
其中标题为{'X-ApiKey': A-ApiKey, 'Authorization': Authorization}
data_req
是<Response [200]>
然后我用
data_tree = xml.etree.ElementTree.fromstring(data_req.content)
转换为并成功更改data_tree
然后我用
data_set = xml.etree.ElementTree.tostring(data_tree)
转换回字符串。
然后我尝试通过以下方式发布更改:
_response = requests.post(proj_data_url, data=data_set, headers=headers, auth=(_user, _pw))
但是收到_response = <Response [500]>
,这显然是服务器错误。
有人可以帮忙吗?
答案 0 :(得分:0)
因此,如果不知道您发布的服务器或XML,任何人都无法帮助解决服务器错误。
500意味着您正在与之交谈的应用程序未在内部处理错误。例如,如果应用程序是用Python编写的,则500可能是代码中未处理的异常的结果。
如果没有更多详细信息,您应该努力与网站管理员联系以获取帮助。他们可以检查他们的日志,修复他们的应用程序,并告诉您如何正确地向他们的服务发送请求。
您可能尝试做的一件事是为POST请求设置内容类型。您可以通过更新headers
来完成此操作
headers['Content-Type'] = 'text/xml' # or 'application/xml'
(请参阅this answer确定您应发送的内容。)