我想用net :: http做一个post请求。净:: http帮助[POST工作与卷曲,但在窗体上失败]
我的请求,利用网:HTTP失败,以下错误:
respnose_body,code: ["{\"message\":\"Validation Failed\",\"errors\":{\"direction\":[\"invalid\"]}}",
"422"]]
我的要求工作正常使用的端子短卷发:
curl https://$$.com/$$ \
> -u usr:Pssd! \
> -X POST \
> -H 'Accept: application/json' \
> -H 'Content-Type: application/json' \
> -d '{"body":"my body"}'
但是同样的请求,我试图执行使用实价: 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代码适用于不同的发布请求(不同的发布请求uri)执行完全一样。
服务期望数据以json的形式发送和接收。
任何建议来调试这个。
谢谢!
更新: 加我设立头
你是如何设定相当于头卷曲'-H“内容类型:application/json''在你的net :: http代码中?我看不到它。 。 。我期望看到一个'request.header'或类似的东西(要检查正确的语法......) – 2013-04-04 19:10:31