2017-08-28 21 views
0

私はサーバーにパスワードを投稿します。ここでは、サーバーのソースコードは(主に)です:'multipart/form-data'コンテンツをpythonリクエスト経由でファイルなしで投稿するには?

以下
<FORM ENCTYPE="multipart/form-data" METHOD=POST> 
Password:<INPUT NAME="pw1" TYPE="password"> 
Password:<INPUT NAME="pw2" TYPE="password"> 
<INPUT TYPE="submit" VALUE="Confirm"> 

は私のコードは次のとおりです。

import requests 
url = 'http://192.168.0.1/pw' 
file = {"pw1":"abc","pw2":"abc"} 
r = requests.post(url, files = file) 

wiresharkのことから、私が手:私は何を期待

--4d4bb99654064447b31a7afb787e5dbc 
Content-Disposition: form-data; name="pw1"; filename="pw1" 

abc 
--4d4bb99654064447b31a7afb787e5dbc 
Content-Disposition: form-data; name="pw2"; filename="pw2" 

abc 
--4d4bb99654064447b31a7afb787e5dbc-- 

にはfilename="pw1"/"pw2"つまりはありませんということです、

--4d4bb99654064447b31a7afb787e5dbc 
Content-Disposition: form-data; name="pw1" 

abc 
--4d4bb99654064447b31a7afb787e5dbc 
Content-Disposition: form-data; name="pw2" 

abc 
--4d4bb99654064447b31a7afb787e5dbc-- 

テレグラムは、このようにしてサーバによってのみ認識されます。 投稿リクエストの処理方法を解決するにはどうすればよいですか?この場合にリクエストライブラリを使用する場合は、filesを使用する必要がありますか?何か助けてくれてありがとう。

答えて

0

あなたが投稿したフォームのhtmlについては、入力要素をファイルdictに送信する必要はありません。 次のコードスニペットが機能するはずです -

import requests 
url = 'http://192.168.0.1/pw' 
data = {"pw1":"abc","pw2":"abc"} 
files = {'file': ''} 
r = requests.post(url, data=data, files=files) 
+0

はい、動作します。ありがとうございました。ガイドライン[here](http://www.python-requests.org/ja/master/user/advanced/#post-multiple-multipart-encoded-files)から、あなたが投稿したフォーマットはありません。初心者のためのより詳細なマニュアルはありますか? – feng

+0

私はあなたのために働いてうれしいです。あなたは答えを受け入れることができます。 –

関連する問題