我正在尝试使用 net::http 进行发布请求。
我使用 net:http 的请求失败并出现以下错误:
respnose_body,code: ["{\"message\":\"Validation Failed\",\"errors\":{\"direction\":[\"invalid\"]}}",
"422"]]
我的请求在终端上使用 curl 可以正常工作:
curl https://$$.com/$$ \
> -u usr:Pssd! \
> -X POST \
> -H 'Accept: application/json' \
> -H 'Content-Type: application/json' \
> -d '{"body":"my body"}'
但是同样的请求,我尝试使用 nett:http 作为
http_headers => {"Accept" => "application/json", "Content-Type" => "application/json"}
uri=URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(uri.request_uri)
http_headers.each{|key,value| request.add_field(key,value)}
request.body = form_data
response=http.request(request)
The form_data is passed as a json using hash.to_json .
现在,相同的 NET:HTTP 代码适用于执行完全相同的不同 post 请求(在不同的 uri 上)。
该服务期望以 json 格式发送和接收数据。
调试此的任何建议。
谢谢!
更新:添加了我设置标题的方式