Как я могу разобрать ответ HTML без заголовков ответа, используя Ruby - PullRequest
1 голос
/ 16 декабря 2009

Как я могу получить ответ HTML, когда нет заголовков ответа?

У меня есть это:

require 'hpricot'
require 'open-uri'

doc = Hpricot(open('http://192.168.100.1/phy.htm'))

Сервером в этом случае является кабельный модем, который не возвращает заголовки HTTP-ответа.

Приведенный выше код не работает с:

C: /Ruby/lib/ruby/1.8/net/http.rb: 2022: в `read_status_line ': неправильная строка состояния:" "(Net :: HTTPBadResponse)

из C: /Ruby/lib/ruby/1.8/net/http.rb: 2009: в `read_new '

из C: /Ruby/lib/ruby/1.8/net/http.rb: 1050: в `request '

из C: /Ruby/lib/ruby/1.8/open-uri.rb: 248: в `open_http '

Ответы [ 2 ]

4 голосов
/ 16 декабря 2009

Так что, если ваш сервер не совместим с HTTP, возможно, вам следует отказаться от идеи HTTP и работать с Socket напрямую ...

Тогда вы можете использовать hpricot с возвращенной строкой.

0 голосов
/ 10 августа 2010

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

Есть обходной путь:

resultxml = %x{wget -qO- "http://192.168.100.1/state.xml"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...