Ruby法拉第gem没有body时加Content-type
Ruby Faraday gem adds Content-type when no body
我正在使用 Ruby Faraday gem 向 Bitstamp API.
发出一些请求
我想用一个空 body 发出 this post
请求(以获取我的帐户余额)。我遇到的问题是法拉第在执行请求期间添加了一个 Content-type
header,我想是在中间件中。当 body 为空时,Bitstamp API 不允许包含 Content-type
header,所以我收到以下错误:
BitstampClient::Error: Bitstamp error: 403 {"status": "error", "reason": "Content-Type header should not be present", "code": "API0020"
如何排除 Content-type
header?我在 Postman 中测试了相同的请求,效果很好。所以我确定这就是问题所在。
My builder is the following: <Faraday::RackBuilder:0x000000401e9f2208 @adapter=Faraday::Adapter::NetHttp, @handlers=[Faraday::Request::UrlEncoded]>
是的,UrlEncoded
中间件添加了 Content-Type
header。文档:
The middleware also automatically sets the Content-Type header to application/x-www-form-urlencoded.
https://github.com/lostisland/faraday/blob/8f00640dd51da00c8ca09f29bca0a2b32c553925/docs/middleware/request/url_encoded.md
我正在使用 Ruby Faraday gem 向 Bitstamp API.
发出一些请求我想用一个空 body 发出 this post
请求(以获取我的帐户余额)。我遇到的问题是法拉第在执行请求期间添加了一个 Content-type
header,我想是在中间件中。当 body 为空时,Bitstamp API 不允许包含 Content-type
header,所以我收到以下错误:
BitstampClient::Error: Bitstamp error: 403 {"status": "error", "reason": "Content-Type header should not be present", "code": "API0020"
如何排除 Content-type
header?我在 Postman 中测试了相同的请求,效果很好。所以我确定这就是问题所在。
My builder is the following: <Faraday::RackBuilder:0x000000401e9f2208 @adapter=Faraday::Adapter::NetHttp, @handlers=[Faraday::Request::UrlEncoded]>
是的,UrlEncoded
中间件添加了 Content-Type
header。文档:
The middleware also automatically sets the Content-Type header to application/x-www-form-urlencoded. https://github.com/lostisland/faraday/blob/8f00640dd51da00c8ca09f29bca0a2b32c553925/docs/middleware/request/url_encoded.md