2013-04-25 56 views
0
require 'net/http' 
require 'uri' 
postData = Net::HTTP.post_form(URI.parse('http://localhost/restapi/index.php/api/posts'), 
          {'id'=>9,'firstname'=>"test","lastname"=>"test"}) 
puts postData.body 

如何以JSON格式發送數據?如何使用Rest API發佈json數據

@toSend = {"id" =>5,"firstname" => "anurag","lastname" => "arya"} 

我也試過,但沒有奏效:

@toSend.to_json 

例子:

require 'rubygems' 
require 'net/http' 
require 'uri' 
require 'json' 

url = "http://localhost/restapi/index.php/api/posts" 
uri = URI.parse(url) 
data = {"id"=>11,           
       "firstname"=>"PWD","lastname"=>"last"}  

headers = {'Content-Type' =>'application/json',    
        'Accept-Encoding'=> "gzip,deflate", 
        'Accept' => "application/json"} 

http = Net::HTTP.new(uri.host,uri.port) # Creates a http object 
#http.use_ssl = true           # When using https 
#http.verify_mode = OpenSSL::SSL::VERIFY_NONE 
response = http.post(uri.path,data.to_json,headers) 
puts response.code 
puts response.body 
+0

如果可能的話,避免您的問題大膽使用全部大寫。無時無刻都在大喊大叫。 – tadman 2013-04-25 14:33:56

+0

那麼,有什麼問題? – bdares 2013-04-25 17:48:38

+1

現在通過使用post_form來解決它。 – unknownbits 2013-05-04 10:31:32

回答

-1
postData=Net::HTTP.post_form(URI.parse('http://localhost/oecprashant/yiiIndex.php/api/rubyREST'), 
          {'data'=>jsonData}) 
+0

使用post_form以這種方式發送數據 – unknownbits 2013-05-04 10:34:24

+0

是的它是正確的。 – 2013-05-11 06:14:57

+0

不,這不會將'jsonData'作爲原始請求體提交,而是使用單個鍵值對'data = '提交urlencoded請求。 – koniiiik 2016-07-12 14:47:57

相關問題