クエリーコードでこの?where[id]=CXP
のようなリクエストを行う必要がありますが、リクエストのparams(params = {'where[id]': 'CXP'}
)に定義すると、内部サーバーエラー500
が返されます。ParamsがPythonクエリーストリングを要求します
r = requests.get('http://myurl', params=params)
このリクエストをするには正しいwhayは何ですか?
ありがとうございました。
クエリーコードでこの?where[id]=CXP
のようなリクエストを行う必要がありますが、リクエストのparams(params = {'where[id]': 'CXP'}
)に定義すると、内部サーバーエラー500
が返されます。ParamsがPythonクエリーストリングを要求します
r = requests.get('http://myurl', params=params)
このリクエストをするには正しいwhayは何ですか?
ありがとうございました。
サーバーがjsonの書式設定を必要とする可能性は非常に高いです。 500
はそのようには見えませんが、まだ試してみる価値があります。 要求のバージョン2.4.2以降では、単にjsonをパラメータとして使用できます。それはあなたのためのエンコーディングの世話をします。あなたがやらなければならないことは、次のとおりです。
r = requests.get('http://myurl', json=params)
あなたが要求の古いバージョンを使用して(何らかの理由で)している場合、あなたは次のことを試すことができます。
import simplejson as json
r = requests.get('http://myurl', param=json.loads(params))
私はいつものようにsimplejson
json
以上のパッケージをお勧めしますより頻繁に更新されます。
編集:urlencodingを防ぐには、唯一の解決策は文字列を渡すことです。
r = requests.get('http://myurl', param='where[id]=CXP')
フレンド..私はそれを解決すると思う。
params要求に文字列を許可します。 だから、私はそれが最善の方法ではないと思うが、 - 私はとパッティング:
R = requests.get( 'http://myurl'、のparams = '[サービス]はCXPを=ここで、')
と正常に動作します!
「500」は、あなたのリクエストと同じように、内部エラーが発生していることを意味します。あなたのコードは問題ありません、サーバーコードにはエラーがあります。それがあなたのサーバーコードであれば、それを提供してください。また、あなたのサーバのコンソールを確認するか、エラーが – Felk
ある何のためにログインする 、ありがとうしかし、私は、ブラウザの要求を行うとき、応答が細かいです: ブラウザの要求: ます。http:[ID]はCXP を= // myurl? RESPONSE: { "データ":{ "サービス":[ { "ID": "CXP"、 "優先":ヌル、 "タイトル":ヌル、 "URL":ヌル、 "visibility":false } ] }、 "メッセージ": "OK" 、 "statusCode":0、 "タイムスタンプ":1505826297 } –
削除されたコメントについて:それについては気をつけないで、リクエストはそれ自身でURLエンコーディングを処理する必要があります – Felk