1. ホーム
  2. ruby

[解決済み] Ruby: HTTP でファイルを multipart/form-data で投稿するには?

2022-08-25 08:40:51

質問

ブラウザから投稿されるHMTLフォームのようなHTTP POSTを行いたいのです。具体的には、いくつかのテキストフィールドとファイルフィールドを投稿します。

テキストフィールドを投稿するのは簡単で、net/http rdocs にすぐ例がありますが、それと一緒にファイルを投稿する方法を見つけ出すことができません。

Net::HTTP は最良のアイデアとは思えません。 カーブ は良さそうですね。

どのように解決するのですか?

私は レストクライアント . これは、マルチパートフォームデータのようなクールな機能を持つnet/httpをカプセル化するものです。

require 'rest_client'
RestClient.post('http://localhost:3000/foo', 
  :name_of_file_param => File.new('/path/to/file'))

ストリーミングにも対応しています。

gem install rest-client で始めることができます。