Net :: HTTP :: Put.new (url.path) показывает ошибку 401 в RUby - PullRequest
1 голос
/ 07 сентября 2010

HI,

Я новичок в ROR

я пишу код Ruby для вызова блогов API

Я написал код рубина для

Создание блога

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

, который успешно работает при создании нового блога

И у меня есть код поиска

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" )

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

, который возвращает

<?xml version="1.0" encoding="UTF-8"?>
<blogpost>
  <created-at type="datetime">2010-09-02T08:18:22Z</created-at>
  <description>&lt;p&gt;Blog desc&lt;/p&gt;</description>
  <slug>blogtitle</slug>
  <title>blogtitle</title>
  <user>
    <firstname>admin</firstname>
    <lastname>k</lastname>
    <login>admin</login>
  </user>
</blogpost>

Теперь я пытаюсь обновить BLog

для этого как написать код

я попытался просто изменить POST.new на PUT.new

но у меня это не сработало

показывает ошибку, даже если я предоставил учетные данные администратора

1 Ответ

1 голос
/ 07 сентября 2010

Возможно, стоит попробовать запрос POST, но также добавить в запрос параметр _method = 'put'.Rails может имитировать запрос PUT таким образом, хотя я ожидаю, что он будет правильно отвечать и на HTTP PUT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...