Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Do not supply a default content type.

未关闭
#205 13 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
ruby
领域
networking

调研方向

先从 lib/net/http/generic_request.rb 中大约第 263 行的 supply_default_content_type 开始,然后将其行为与 issue 中引用的 RFC 7231 指导进行比较。当 Net::HTTP 不再为未知 body 提供假定的 Content-Type(包括所描述的 AWS 风格用例)时,此更改即完成。

由索引模型根据 Issue 内容生成。

描述

Hello.

I would like to know if you would welcome a change to remove suppy_default_content_type.

Checking RFC for Content-Type: https://datatracker.ietf.org/doc/html/rfc7231#section-3.1.1.5

   A sender that generates a message containing a payload body SHOULD
   generate a Content-Type header field in that message unless the
   intended media type of the enclosed representation is unknown to the
   sender.  If a Content-Type header field is not present, the recipient
   MAY either assume a media type of "application/octet-stream"
   ([RFC2046], Section 4.5.1) or examine the data to determine its type.

Based on the RFC, I think Net::HTTP behavior is incorrect - assuming a default content type is not correct because the media type is not known unless Net::HTTP reads/inspects the body. The receiver may assume octet-stream unless provided.

This has caused issues with AWS services, where content type may be a modeled API parameter in REST services, like with S3 where you can specify the content type of an object. Currently we work around this with a patch:

Thread.current[:net_http_skip_default_content_type] = true

def self.apply!
  Net::HTTPGenericRequest.prepend(PatchDefaultContentType)
end

module PatchDefaultContentType
  def supply_default_content_type
    return if Thread.current[:net_http_skip_default_content_type]

    super
  end
end
主要语言
Ruby
星标
148
派生
95
平均合并
10 小时 54 分钟
30 天内合并 PR
4

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ruby/net-http 的其他 Issue

查看 ruby/net-http 的全部 Issue

相似的 Issue

更多 Ruby Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。