1. ホーム
  2. python

[解決済み] POSTリクエストをJSONとして送信するにはどうすればよいですか?

2022-08-31 05:27:13

質問

data = {
        'ids': [12, 3, 4, 5, 6 , ...]
    }
    urllib2.urlopen("http://abc.com/api/posts/create",urllib.urlencode(data))

POSTリクエストを送信したいのですが、フィールドの1つは数値のリストでなければなりません。どのように私はそれを行うことができますか?(JSON?)

どのように解決するのですか?

サーバーが 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 タイプになります。