如何在python中发布xml元素

G U*_*man 13 python xml post urllib2

基本上我有这个xml元素(xml.etree.ElementTree),我想把它发布到一个url.目前我正在做类似的事情

xml_string = xml.etree.ElementTree.tostring(my_element)
data = urllib.urlencode({'xml': xml_string})
response = urllib2.urlopen(url, data)
Run Code Online (Sandbox Code Playgroud)

我很确定这是有效的,但我想知道是否有更好的练习或方法,而不先将其转换为字符串.

谢谢!

Mat*_*hen 18

如果这是您自己的API,我会将POSTing视为application/xml.默认值是application/x-www-form-urlencoded,表示HTML表单数据,而不是单个XML文档.

req = urllib2.Request(url=url, 
                      data=xml_string, 
                      headers={'Content-Type': 'application/xml'})
urllib2.urlopen(req)
Run Code Online (Sandbox Code Playgroud)