Ruby Net::HTTP::Post覆盖自定义内容类型头
Ruby的Ruby Net::HTTP::Post覆盖自定义内容类型头,ruby,rest,http,post,Ruby,Rest,Http,Post,Ruby的Net::HTTP::Post似乎覆盖了自定义内容类型头。当我设置标题'Content-Type':'application/json'时,我从服务器收到以下错误: HTTP Status 400 - Bad Content-Type header value: 'application/json, application/x-www-form-urlencoded' 注意应用程序/x-www-form-urlencoded为什么在那里?有没有办法将其删除? 我的代码: def po
Net::HTTP::Post
似乎覆盖了自定义内容类型头。当我设置标题'Content-Type':'application/json'
时,我从服务器收到以下错误:
HTTP Status 400 - Bad Content-Type header value: 'application/json, application/x-www-form-urlencoded'
注意应用程序/x-www-form-urlencoded
为什么在那里?有没有办法将其删除?
我的代码:
def post(uri, params)
req = Net::HTTP::Post.new(uri.path, 'Content-Type':'application/json')
req.form_data = params
Net::HTTP.start(uri.hostname, uri.port) {|http|
http.request(req)
}
end
有趣的是,下面的代码使用Net::HTTP采用不同的方法工作:
def post(uri, params)
headers = {'Content-Type' =>'application/json'}
request = Net::HTTP.new(uri.host, uri.port)
request.post(uri.path, params.to_json, headers)
end
原因是在您显式设置请求的第一个代码段中
req.form_data = params
表格是
可能您最好设置body
或显式地在中设置。原因在于您显式地设置请求的第一个代码段。表单\u data
:
req.form_data = params
表格是
可能您最好设置body
或在中显式设置