ruby - Net::HTTP::POST 發(fā)送參數(shù)值為hash數(shù)組的方法
問題描述
代碼如下(很常見的發(fā)送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
這個(gè)方法發(fā)送類似{'name' => 'www.xxx.com', 'type'=>'download'}的參數(shù),沒什么問題,但是現(xiàn)在有一個(gè)需求參數(shù)里有一個(gè)數(shù)組,數(shù)組的元素是map,類似{'ip'=>{'static.xxx.com'=>80,'img.xxx.com'=>23}},這個(gè)該怎么搞
問題解答
回答1:可以使用Content-Type: application/json
body 放序列化的JSON
也可以使用to_query方法轉(zhuǎn)成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 轉(zhuǎn)成json放body
相關(guān)文章:
1. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?2. angular.js - 關(guān)于$apply()3. MySQL數(shù)據(jù)庫(kù)中文亂碼的原因4. dockerfile - [docker build image失敗- npm install]5. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。6. 如何解決Centos下Docker服務(wù)啟動(dòng)無(wú)響應(yīng),且輸入docker命令無(wú)響應(yīng)?7. nignx - docker內(nèi)nginx 80端口被占用8. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???9. android-studio - Android Studio 運(yùn)行項(xiàng)目的時(shí)候一堆警告,跑步起來(lái)!?10. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?
