2013-04-25 51 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

相关问题