2016-05-13 9 views
0
headers = {'x-auth-token': token,'Content-type':'application/json'} 
url2="http://192.168.56.1:8081/whitelist" 
print "HEaders",headers 
re=requests.get(url2,headers=headers) 
print re.content 
r = requests.post(url2, data=json.dumps(file_as_inp)) 
print r 
print "code:"+ str(r.status_code) 
print "******************" 
print "headers:"+ str(r.headers) 
print "******************" 
print "content:"+ str(r.content) 

私は、Webサービスにデータを送信するためのスクリプトを作成しています。私はヘッダーにauth-tokenとcontent typeとjson値のリストをペイロードとして渡しています。 file_as_inpがリクエスト時にヘッダーにx-auth-tokenが渡されない

[{'ip': '10.1.2.3'}, {'ip': '10.3.4.5'}, {'ip': '10.8.9.A'}, {'ip': '0'}, {'ip':'00'}, {'ip': 'null'}, {'ip': '10.9.4.5'}, {'ip': '10.7.6.2'}] 

ヘッダとしてJSON値のリストが含まれて含まれています

{'Content-type': 'application/json', 'x-auth-token': u'313e95e7-ce08-46bf-8891-6d68fc615170'} 

私は1つのコマンドプロンプト上で私のサービスを実行していますし、他のコマンドプロンプト上で、私はこのスクリプトを実行しています。誰かがどこを教えてもらえます

content:x-auth-token not passed in header, please pass the token. 

:私はr.contentを印刷するときしかし、私が印刷された以下の行を取得し、私はr.headersを印刷するとき、私は

headers:{'Content-Length': '57', 'Access-Control-Allow-Headers': 'Content-Type', 'Access-Control-Max-Age': '21600', 'Server': 'Werkzeug/0.11.9 Python/2.7', 'Date': 'Fri, 13 May 2016 04:47:52 GMT', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'HEAD, GET, POST, OPTIONS', 'Content-Type': 'text/html;charset=utf-8'} 

として、いくつかの出力を得る200としての応答を取得します間違ってる?なぜ私は出力として上記の行を得ていますか? Webサービスにデータを投稿した後、検証を実行し、IPが有効かどうかを確認する必要があります。しかし、私はここで立ち往生しています。

答えて

1

あなたはPOSTリクエストを呼び出しているときに、ヘッダー値を設定されていません。あなたは、あなたにコードを変更することができます

r = requests.post(url2, data=json.dumps(file_as_inp), headers=headers) 

または推奨の方法は、Sessionオブジェクトを使用することです。

Sessionオブジェクトを使用すると、リクエスト間で特定のパラメータを保持することができます。セッションは、リクエストメソッドにデフォルトデータを提供するためにも使用できます。これは、Sessionオブジェクトのプロパティにデータを提供することで行われます

x-auth-tokenあなたはSessionオブジェクトを使用して作るすべてのリクエストのヘッダーに追加されます。あなたのコードは、次のようになります。

s = requests.Session() 
s.headers.update({'x-auth-token': token,'Content-type':'application/json'} ) 
url2 = "http://192.168.56.1:8081/whitelist" 

r = s.get(url2,headers=headers) 
print re.content 

r = s.post(url2, data=json.dumps(file_as_inp)) 
print r.content 
+0

ありがとうございました。私はすでにヘッダーを追加しました。私はスクリプトの出力を希望どおりに取得しています。しかし、私がスクリプトを2番目のタイプで実行するときには、出力は最後の出力に追加されます。そうですか? –

+0

@IramKhan - なぜそれが起こっているのか分かりません。あなたは別の質問を投稿するべきです。 – JRodDynamite

+0

iをコード下に固定された:R = requests.post(URL2、データ=のjson.dumps(file_as_inp)、ヘッダ=ヘッダ) 印字R #再= requests.get(URL2、ヘッダー=ヘッダ) プリント」コード: "+ str(r.status_code) " ***************** " print"ヘッダー: "+ str(r.headers) 印刷" ** ****************」 印刷 "内容:" + STR(r.text) –

関連する問題