12

content-type:application/json を送信できる FormRequest を作成しようとしています。

ここに私が試すものがあります:

yield FormRequest("abc.someurl.com", formdata=json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'}, callback=self.parseResult2)

json.dumps()formdata= でフォーム データを処理するために使用すると、発生するエラーは次のとおりです。

「exceptions.ValueError: アンパックするには複数の値が必要です」

リストをそのまま使用することはできません

formdata={"referenceId":123,"referenceType":456} 

FormRequest は機能しますが、サーバーによって受け入れられません。

import requests
import json
result = requests.post(url, json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'})

上記のようにpythonコマンドプロンプトから動作します。

何か案は?

-KM

4

3 に答える 3

23

FormRequest は、HTML フォームをシミュレートするためのものです (例: application/x-www-form-urlencoded)。リクエストでデータを POST したいだけのようです。「application/json」のコンテンツタイプについて言及しているので、おそらく次のようなことをしたいと思うでしょう:

request = Request( url, method='POST', 
                   body=json.dumps(my_data), 
                   headers={'Content-Type':'application/json'} )
于 2012-07-11T00:42:28.910 に答える