代码之家  ›  专栏  ›  技术社区  ›  John Naegle

如何使用Ruby解析没有响应头的HTML响应

  •  1
  • John Naegle  · 技术社区  · 15 年前

    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:2009:in'read\u new'

    来自C:/Ruby/lib/Ruby/1.8/openuri.rb:248:in'open_http'

    2 回复  |  直到 4 年前
        1
  •  4
  •   Mladen Jablanović    15 年前

    所以,如果您的服务器不兼容HTTP,那么您可能应该完全放弃HTTP思想,并使用它 Socket 直接。。。

    然后可以使用hpricot并返回字符串。

        2
  •  0
  •   Brock Adams    13 年前

    我看到了一个类似的问题,很不情愿地得出了相同的结论。我正在与一个返回原始XML的设备交谈,而不用费心将其包装成HTML响应。

    有一个解决办法:

    resultxml = %x{wget -qO- "http://192.168.100.1/state.xml"}