【问题标题】:sending data to xml api of webservice将数据发送到 webservice 的 xml api
【发布时间】:2011-09-27 12:30:59
【问题描述】:

我正在尝试编写一个基本上与使用 xml api 的 web 服务交互的 python 脚本。请求方式为 POST。

通常我会写一个request(url, data, headers) 形式的请求 - 但是,对于 xml api,它不起作用。像 data.encode('utf-8') 或 urllib.urlencode(data) 这样的东西也不起作用,因为数据不是字典。

在这种情况下,数据是 xml 那我应该如何发送呢?

[编辑] 当我发送一个 XML 字符串时,我得到一个 urllib2.HTTPError: HTTP Error 415: Unsupported Media Type 异常。我应该以其他方式发送数据吗?

另外,我正在使用的 API 是 Google Contacts API。我正在尝试编写一个脚本,将联系人添加到我的 gmail 帐户。

【问题讨论】:

  • 发送 XML 字符串与发送 urlencoded dict 有何不同?
  • 这可能是相关的 - stackoverflow.com/questions/206154/…
  • 当我发送一个 XML 字符串时,我得到一个“urllib2.HTTPError:HTTP 错误 415:不支持的媒体类型”异常。我应该以其他方式发送数据吗?
  • 您在提交 XML 数据时使用的 Content-type 标头是什么?

标签: python web-services api


【解决方案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)

希望有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多