向webservice的xml API发送数据
我正在尝试写一个Python脚本,这个脚本主要是和一个使用XML接口的网络服务进行交互。请求的方法是POST。
通常,我会写一个像这样格式的请求:request(url, data, headers)
,但是在XML接口的情况下,这样做是行不通的。而像data.encode('utf-8')或者urllib.urlencode(data)这样的方式也不适用,因为数据并不是一个字典。
在这种情况下,数据是XML格式的,那我应该怎么发送呢?
[编辑] 当我发送一串XML字符串时,我收到了一个urllib2.HTTPError: HTTP Error 415: Unsupported Media Type
的错误。这还有其他方法可以发送数据吗?
另外,我使用的API是谷歌联系人API。我正在尝试写一个脚本,把一个联系人添加到我的Gmail账户中。
1 个回答
1
你可能需要设置正确的内容类型(Content-Type)头信息,对于XML文件来说,通常应该是:
application/xml
所以像这样设置应该能帮到你:
request = urllib2.Request( 'xml_api.example.com' )
request.add_header('Content-Type', 'application/xml')
response = urllib2.urlopen(request, xml_data_string)
希望这对你有帮助 :)