如何以 JSON 格式发送 POST 请求?

新手上路,请多包涵
data = {
        'ids': [12, 3, 4, 5, 6 , ...]
    }
    urllib2.urlopen("http://abc.example/api/posts/create",urllib.urlencode(data))

我想发送一个 POST 请求,但其中一个字段应该是数字列表。我怎样才能做到这一点? (JSON?)

原文由 TIMEX 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 735
2 个回答

如果您的服务器期望 POST 请求是 json,那么您需要添加一个标头,并为您的请求序列化数据……

Python 2.x

 import json
import urllib2

data = {
        'ids': [12, 3, 4, 5, 6]
}

req = urllib2.Request('http://example.com/api/posts/create')
req.add_header('Content-Type', 'application/json')

response = urllib2.urlopen(req, json.dumps(data))

Python 3.x

https://stackoverflow.com/a/26876308/496445


如果不指定标头,则默认为 application/x-www-form-urlencoded 类型。

原文由 jdi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题