http 请求的 Content-Type: application/json; charset=utf-8 里面的 "; charset=utf-8"能否给个开关取消附加?会在一些情况下不符合 api 标准

BUG反馈 · 558 次浏览
张立行 创建于 2024-02-01 16:32

您好,我部署了 songquanpeng/message-pusher: 搭建专属于你的消息推送服务,支持多种消息推送方式,支持 Markdown,基于 Golang 仅单可执行文件,开箱即用  项目,可以通过 api 发送通知。

 

我想要在 Quicker 上通过 http 请求调用此 api,其 post 要求是:

如果发送的是 JSON,HTTP Header Content-Type 请务必设置为 application/json,否则一律按 Form 处理。

使用 Postman 测试一切正常,但使用 Quicker 发送 http post 请求则会提示 Content-Type 没有设置为 application/json

我抓包看了一下,Quicker 的 http 请求会在后面附加 charset,而 api 校验采用的完全匹配形式。所以才会报错。

Quicker 的 http 请求模块能否增加一个选项,可以不附加 charset?

 

PS:我也会向这个项目反馈,但作者精力也有限,修复估计遥遥无期了。。只能期望 Quicker 这边能调整一下了。感谢:)


回复内容
CL 2024-02-01 16:59
#1

尽管找到了解决办法,但是比较担心这个修改会造成比较严重的负面问题。因为这个是.net的内部实现,而且一直以来也没有其它问题,去掉它有可能会影响正常的编码识别并造成另外一些API调用出现问题。


这里是解决办法的网页:

https://dzone.com/articles/httpclient-how-to-remove-charset-from-content-type 


所以这个我感觉还是不能轻易修改,而是建议直接通过c#代码调用http请求,并在代码里面去掉CharSet

    content.Headers.ContentType.CharSet = "";


张立行 回复 CL 2024-02-01 17:02 :

明白了,有变相的解决方案就行。感谢!

回复主贴