ruby http ошибка - неправильный формат Content-Length - PullRequest
0 голосов
/ 17 ноября 2009

У меня есть следующий код

url = URI.parse("http://localhost:3100/tasks/#{id}.xml")
http = Net::HTTP.new(url.host, url.port)

# Make request
response = http.start do |http|
    http.get(url.request_uri)
end

При каждом запуске этого кода возвращается следующая ошибка

Net::HTTPHeaderSyntaxError in TasksController#show 
wrong Content-Length format

Кто-нибудь знает, что здесь происходит не так?

Спасибо, Джош

Ответы [ 2 ]

3 голосов
/ 18 ноября 2009

Хм, этот код выглядит не так:

response = http.start do |http|

Переменная, которую вы передаете в свой блок, не должна иметь того же имени, что и существующая переменная. Вы можете захотеть что-то более похожее на то, что есть в документах .

require 'net/http'

url = URI.parse('http://www.example.com/index.html')
req = Net::HTTP::Get.new(url.path)
res = Net::HTTP.start(url.host, url.port) {|http|
  http.request(req)
}
puts res.body
0 голосов
/ 05 марта 2010

Ваш код работает, когда я указываю, например, http://www.google.com,, поэтому я подозреваю, что ваш сервер выплевывает что-то, что вызывает расстройство желудка Net :: HTTP. Попробуйте добавить эту строку сразу после вашего звонка на HTTP.new:

http.set_debug_output($stderr)

Это должно выбросить всю транзакцию на экран. Я предполагаю, что вы найдете что-то странное с полем Content-Length в заголовке ответа (Net :: HTTP ожидает найти строку цифр в этом поле). Если из этого не ясно, в чем дело, тогда опубликуйте этот вывод (или, по крайней мере, часть заголовка ответа) здесь и позвольте этим умным парням попробовать.

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