Update code Net::HTTP::Put.new(url.path)

HI ,

i am new to ROR

i am writing Ruby code for calling API blogs

i have written ruby code for

Creating the blog by

require ‘net/http’
require ‘uri’

url = URI.parse(‘http://localhost:3000/api/blogs/create.xml’)
req = Net::HTTP::Post.new(url.path)
req.basic_auth ‘a’, ‘a’
req.set_form_data({‘blogpost[title]’=>‘TestingAPIBlogposttitle’,
‘blogpost[description]’=>‘Testing api desc’,
‘blogpost[category_id]’=>‘3121’}, ‘;’)
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)
}
case res
when Net::HTTPSuccess, Net::HTTPRedirection
puts res.body
else
res.error!
end

which runs successfully by creating a new blog

And i have a search code

require ‘net/http’
require ‘uri’
require ‘cgi’

Change this part according to the api to be accessed and the params

to be passed.
uri = URI.parse( “http://localhost:3000/api/blogs/show/blogtitle.xml” )

#blogtitle is the slug which is a mandatory , no other parameters

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.path)
request.basic_auth ‘a’, ‘a’
response = http.request(request)

puts response.body

which returns the

<?xml version="1.0" encoding="UTF-8"?> 2010-09-02T08:18:22Z <p>Blog desc</p> blogtitle blogtitle admin knome admin

Now i am trying to Update a BLog

for this how to write the code

i tried by simply changing the POST.new by PUT.new

but it didnt works for me

Aruna C. wrote:

HI ,

i am new to ROR

i am writing Ruby code for calling API blogs

i have written ruby code for

Creating the blog by

require ‘net/http’
require ‘uri’

url = URI.parse(‘http://localhost:3000/api/blogs/create.xml’)
req = Net::HTTP::Post.new(url.path)
req.basic_auth ‘a’, ‘a’
req.set_form_data({‘blogpost[title]’=>‘TestingAPIBlogposttitle’,
‘blogpost[description]’=>‘Testing api desc’,
‘blogpost[category_id]’=>‘3121’}, ‘;’)
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)
}
case res
when Net::HTTPSuccess, Net::HTTPRedirection
puts res.body
else
res.error!
end

which runs successfully by creating a new blog

And i have a search code

require ‘net/http’
require ‘uri’
require ‘cgi’

Change this part according to the api to be accessed and the params

to be passed.
uri = URI.parse( “http://localhost:3000/api/blogs/show/blogtitle.xml” )

#blogtitle is the slug which is a mandatory , no other parameters

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.path)
request.basic_auth ‘a’, ‘a’
response = http.request(request)

puts response.body

which returns the

<?xml version="1.0" encoding="UTF-8"?> 2010-09-02T08:18:22Z <p>Blog desc</p> blogtitle blogtitle admin knome admin

Now i am trying to Update a BLog

for this how to write the code

i tried by simply changing the POST.new by PUT.new

but it didnt works for me

I tried by adding

require ‘net/http’
require ‘uri’

url = URI.parse(‘http://localhost:3000/api/blogs/update/blogtitle.xml’)
req = Net::HTTP::Put.new(url.path)
req.basic_auth ‘admin’, ‘admin’
req.set_form_data({‘blogpost[title]’=>‘TestingAPIBlogposttitle’,
‘blogpost[description]’=>‘Testing api desc’,
‘blogpost[category_id]’=>‘379344121’}, ‘;’)
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)
}
case res
when Net::HTTPSuccess, Net::HTTPRedirection
puts res.body
else
res.error!
end

but it shows me the 401 error even i gave the admin user credentials

maybe the api think you are trying yo insert with an existing id and no
that
you are updating?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs