Skip to content

Commit 738a573

Browse files
Watson1978claude
andcommitted
Net::HTTP: body 付きリクエストの Content-Type 自動設定廃止 (4.0) を反映
Ruby 4.0 から、body を持つリクエスト (POST / PUT 等) で Content-Type が 明示されていないときに "application/x-www-form-urlencoded" を補う挙動が 削除された (NEWS-4.0.0 / GH-net-http rurema#205)。指定しなかった場合、 Content-Type ヘッダ自体が送信されなくなる。 Net::HTTP#post と Net::HTTP#request_post の該当説明を #@SInCE 4.0 / #@else で分岐した (Net::HTTP#patch の同種の記述は元々 #@# でコメント アウトされており出力されないため対象外)。 実機確認 (ローカル TCPServer でリクエストヘッダを捕捉): - 3.3 / 3.4: Content-Type: application/x-www-form-urlencoded が送信される - 4.0: Content-Type ヘッダが送信されない set_form_data は 4.0 でも従来どおり Content-Type を明示的に設定するため、 Net::HTTPHeader#set_form_data や net/http.md の記述は変更していない。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 18152a7 commit 738a573

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

manual/api/net/http/Net__HTTP.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,9 +769,16 @@ POST で送ります。
769769
ブロックに与えます。このとき戻り値の HTTPResponse オブジェクトは有効な body を
770770
持ちません。
771771

772+
#@since 4.0
773+
POST する場合にはヘッダに Content-Type: を指定する必要があります。
774+
Ruby 4.0 から、header に指定しなかった場合に Content-Type を
775+
"application/x-www-form-urlencoded" として補う挙動は削除されました。
776+
指定しなかった場合、Content-Type ヘッダは送信されません。
777+
#@else
772778
POST する場合にはヘッダに Content-Type: を指定する必要があります。
773779
もし header に指定しなかったならば、 Content-Type として
774780
"application/x-www-form-urlencoded" を用います。
781+
#@end
775782

776783
dest は時代遅れの引数です。利用しないでください。
777784
dest を指定した場合には
@@ -894,9 +901,16 @@ header が nil
894901
接続を維持した状態で [c:Net::HTTPResponse]
895902
オブジェクトをブロックに渡します。
896903

904+
#@since 4.0
905+
POST する場合にはヘッダに Content-Type: を指定する必要があります。
906+
Ruby 4.0 から、header に指定しなかった場合に Content-Type を
907+
"application/x-www-form-urlencoded" として補う挙動は削除されました。
908+
指定しなかった場合、Content-Type ヘッダは送信されません。
909+
#@else
897910
POST する場合にはヘッダに Content-Type: を指定する必要があります。
898911
もし header に指定しなかったならば、 Content-Type として
899912
"application/x-www-form-urlencoded" を用います。
913+
#@end
900914

901915
- **param** `path` -- POST先のエンティティのパスを文字列で指定します。
902916
- **param** `data` -- POSTするデータを与えます。

0 commit comments

Comments
 (0)