1

我正在使用 Typhoeus gem 在我的 rails 应用程序中执行 HTTP 请求。请求如下。

 data = {"auth_token"=>"abcd" ,"employee" => {"method" => "add_employee"}}
 header =  { "Content-Type" => "application/json","Accept"=>"application/json"}
 request = Typhoeus::Request.post("www.example.com",:body=> data.to_json,:headers => header)

在执行此操作时,auth_token 已转换为 auth%5Ftoken=abcd。实际上我的 API 需要参数 auth_token。因为这个 API 不允许访问它。它抛出未经授权的错误。请帮我解决这个问题。提前致谢。

4

2 回答 2

0

我用 to_query 纠正了这个问题。实际上 to_query 正在将实际数据解析到 API

于 2014-04-24T13:31:07.830 回答
-1

这是一个使用 RestClient 的示例,它显示了数据的正确提交,我希望 Typhoeus 不会有所不同:

 data = {"auth_token"=>"abcd" ,"employee" => {"method" => "add_employee"}}
 header =  { "Content-Type" => "application/json","Accept"=>"application/json"}
 RestClient.post("www.example.com", data.to_json, header){ |response, request, result| 
       puts "PAYLOAD:"+request.args[:payload]
 }  

正如预期的那样,这是有效载荷:

 PAYLOAD: "{\"auth_token\":\"abcd\",\"employee\":{\"method\":\"add_employee\"}}"

使用台风:

 data = {"auth_token"=>"abcd" ,"employee" => {"method" => "add_employee"}}
 header =  { "Content-Type" => "application/json","Accept"=>"application/json"}
 request = Typhoeus::Request.post("www.example.com",:body=> data.to_json,:headers => header)
 request.request.original_options[:body]

正如预期的那样,这是请求的有效负载。所以你的代码很好!

 "{\"auth_token\":\"abcd\",\"employee\":{\"method\":\"add_employee\"}}"
于 2014-04-11T12:35:56.557 回答