質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

3182閲覧

requestsでファイルアップロード

horik

総合スコア44

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2017/04/13 08:49

ブラウザ(firefox)のデバッグツールのネットワークの画面で
要求ペイロードので以下のような内容があったとします。
これをrequestsで再現するにはどうすればいいでしょうか?

-----------------------------309587047788548984334069 Content-Disposition: form-data; name="name" Yamada Taro -----------------------------309587047788548984334069 Content-Disposition: form-data; name="file1"; filename="image.jpg" Content-Type: image/jpeg 文字化けしたデータがズラッと・・・ -----------------------------309587047788548984334069

試したこと

これで合っていますでしょうか?

python

1import requests 2from mimetypes import guess_type 3 4data = { 5 "name": "Yamada Taro" 6} 7file_path = '/home/user/image.jpg' 8filename = file_path.split('/')[-1] 9binary = open(file_path, 'rb').read() 10mimetype = guess_type(file_path)[0] 11files = {"file1": (filename, binary, mimetype)} 12r = requests.post(url, data=data, files=files)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Windows環境であればFiddlerを利用することで、通信内容を確認することができます。

こちらで質問文のコードを実行した場合の要求データは以下のようになっていますので、再現できていると思います。
また「文字化けしたデータ」というのは、実際にはバイナリのjpegデータです。

POST http://localhost/ HTTP/1.1 Host: localhost Accept: */* Connection: keep-alive Accept-Encoding: gzip, deflate User-Agent: python-requests/2.12.4 Content-Length: 92081 Content-Type: multipart/form-data; boundary=667f0426ffcf431c873ddea43a85a0c4 --667f0426ffcf431c873ddea43a85a0c4 Content-Disposition: form-data; name="name" Yamada Taro --667f0426ffcf431c873ddea43a85a0c4 Content-Disposition: form-data; name="file1"; filename="image.jpg" Content-Type: image/jpeg (以下、jpegバイナリデータ)

投稿2017/04/14 00:30

編集2017/04/14 00:33
can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問