ruby - Net::HTTP::POST 发送参数值为hash数组的方法
问题描述
代码如下(很常见的发送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 = trueendbegin request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data(data) res = http.request(request) if parsed[’code’] =1 parsed else nil endrescue puts ’communication failed’endend
这个方法发送类似{'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
相关文章:
1. 如何解决docker宿主机无法访问容器中的服务?2. java - xml 传输数据如何处理更好3. javascript - h5上的手机号默认没有识别4. 求大神帮我看看是哪里写错了 感谢细心解答5. mysql - 要取出数据库中按某字段排序后的前10,20,30条数据要怎么做?6. python - 类 对象 函数后面的参数问题,勉强看懂但是要自己写出来就感觉很困难7. javascript - 用原生的js获取body和用jquery获取body的的margin值为什么不一样?8. javascript - 想让图片上那个块,在增加块的宽度的时候向右边移动,而不是向左边移动。需要怎么解决?9. Python Selenium WebDriver如何刷新当前页面10. pycharm运行python3.6突然出现R6034问题,请问如何处理?

网公网安备