ruby - Net::HTTP::POST 發送參數值為hash數組的方法
大家讲道理
大家讲道理 2017-04-24 09:11:11
0
1
928

程式碼如下(很常見的發送post的方法):

def access_api(path, data)
uri = URI(path)
http = Net::HTTP.new(uri.host, uri.port)
if uri.scheme == 'https'
   http.verify_mode = OpenSSL::SSL::VERIFY_NONE
   http.use_ssl = true
end
begin
   request = Net::HTTP::Post.new(uri.request_uri)
   request.set_form_data(data)
   res = http.request(request)
   if parsed['code'] =1
      parsed
   else
      nil
   end
rescue
   puts 'communication failed'
end
end

這個方法發送類似{"name" => "www.xxx.com", "type"=>"download"}的參數,沒什麼問題,但是現在有一個需求參數裡有一個數組,數組的元素是map,類似{"ip"=>{"static.xxx.com"=>80,"img.xxx.com"=>23}},這個該怎麼搞

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(1)
黄舟

可以使用Content-Type: application/json

body 放序列化的JSON

也可以使用to_query方法轉換成url query string的形式

api: http://api.rubyonrails.org/classes/Object.html#method-i-to_query
這是Rails裡的方法

{:token=>"6df95c86c2be8f3d44eaa2da04f173ba", :name=>"www.xxxx.com", :type=>"download", :ip=>[{:"static.xxx.com"=>80}, {:"img.xxx.com"=>80}]}

to_json 轉成json放body

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板