Rest 摆脱邮递员请求中的内容类型

Rest 摆脱邮递员请求中的内容类型,rest,postman,Rest,Postman,我已经更改了我的应用程序,以便它将Content-type设置为application/json,以防标题不存在并且正在尝试测试它 为此,我请了邮递员。然而,当我在“标题”选项卡中取消选中“内容类型”标题时,邮差仍然发送Content-type=text/plain;字符集=UTF-8 有没有办法避免这种情况,只是不在内容类型标题中发送任何内容 如果您有任何帮助,将不胜感激。请转到“正文”选项卡,从子菜单中选择“原始”。在子菜单中“二进制”的右侧,将提供一个选择列表。从该列表中选择“文本”(而不

我已经更改了我的应用程序,以便它将
Content-type
设置为
application/json
,以防标题不存在并且正在尝试测试它

为此,我请了邮递员。然而,当我在“标题”选项卡中取消选中“内容类型”标题时,邮差仍然发送
Content-type=text/plain;字符集=UTF-8

有没有办法避免这种情况,只是不在
内容类型
标题中发送任何内容


如果您有任何帮助,将不胜感激。请转到“正文”选项卡,从子菜单中选择“原始”。在子菜单中“二进制”的右侧,将提供一个选择列表。从该列表中选择“文本”(而不是“文本[文本/纯文本]”)。这将删除内容类型标题。
这里有两件令人担忧的事情

因此,它将内容类型设置为application/json

您是说您希望请求主体被解释为JSON,即使它们没有将其指定为JSON?为什么?这可能会导致各种各样的混乱,未来的框架可能会触发奇怪的默认值,如果现在不明确,将来会受到影响

您是否混淆了内容类型和接受?我看到这种情况经常发生

还有一点似乎很奇怪:

现在正试图测试它

你为什么要这样“在浏览器中”测试?API很容易通过集成测试进行测试,在集成测试中,您可以向控制器发送一些头文件,并查看它如何响应

it 'is fine' do
  post '/endpoint', params: params, headers: { 'Content-Type' => 'foo' }

  expect(response).to match_some_whatever
end

it 'is also fine I guess' do
  post '/endpoint', params: params

  expect(response).to match_some_whatever
end

测试能更好地确保事情正常进行,否则你每次换东西都要在邮递员那里检查。这需要时间,是不现实的,并且会导致您定期推动生产问题

您使用的是什么post方法?@Daniellmnas POSTCan您可以在身体中发布
nothing
?或者它需要一个特定的有效载荷?如果不行,你需要用邮递员吗?也许一个基本的卷发要求就可以了。@DannyDainton不,我不能。说实话,没有理由使用Postman,但是其他所有客户端都失败了——我尝试使用curl,默认情况下它也设置了这个头。Java default HttpClient在默认情况下也会设置此标头,如果未设置任何值,则仍会根据netcatI选择Json而不是文本发送
内容类型:text/plain
,并在正文中写入一些Json