Python 3.5とリクエストの使用2.18.4別のサービスにデータを送信する必要があり、何らかの理由で現在失敗しています。 送信は、別のサービスからデータを受信してクリーンアップした後、最終的にデータが検証され、ネイティブのpython dictとして設定された後に行われます。 データがハードコードされ、私が入ってくるデータ(ハードコードされたJSON文字列)を使用していないとき、これは動作します:json.dumpsを使用しているときに失敗したrequests.post
def my_post_method(self, url, data):
# import requests (above)
return requests.post(
url,
data='{"keyA":"valA", "keyB":"valB" ... }',
headers={'Content-Type': 'application/json'},
) # status 200
しかし、私はいくつかの理由で元のデータとそれを送信することはできません。
def my_post_method(self, url, data):
# import requests, json (above)
d = json.dumps(data)
return requests.post(
url,
data=d,
headers={'Content-Type': 'application/json'},
) # status 400
上からD:{"keyA":"valA", "keyB":"valB" ... }
私は要求JSONパラメータの代わりにデータを使用しようとしましたが、他のサービスは、明らかに他の端にデータパラメータを期待しています。 私が投稿しているサービスがjson形式の文字列で待機していることを意味しますか?
私たちは他のサービスを知ることができますか?私たちが試すことができるものは何ですか? – GendoIkari
ハードコードされた文字列でPOSTを再試行しましたか?あなたは同じ要求を二度したくないので、サービスが400秒を返す可能性はありますか? –
@Rob Wattsに感謝しますが、私はいくつかの奇妙な理由から、受信側が受信データを検証していたときにキー値の順序を考慮しました。私は本当になぜか分からない... – camelBack