在Net :: HTTP库中内置的Ruby有很多功能,但我喜欢HTTPClient,因为它有一套很好的simplified commands。内置的open-uri
也非常方便,如果你不需要做太多的繁重工作。
对于解析HTML和XML,真的很难击败Nokogiri。
Ruby的内置了一个名为URI的URL解析器,但我更喜欢Addressable,尤其是如果我打算乱搞查询参数。
下面是使用各种宝石的一些样品:
require 'addressable/uri'
require 'nokogiri'
require 'open-uri'
如果你要处理的查询参数容易再寻址:: URI使得它方便:
url = 'https://sendgrid.com/api/[email protected]&api_key=secureSecret&[email protected]&toname=Destination&subject=Example%20Subject&text=testingtextbody&[email protected]'
uri = Addressable::URI.parse(url)
uri.query_values # => {"api_user"=>"[email protected]", "api_key"=>"secureSecret", "to"=>"[email protected]", "toname"=>"Destination", "subject"=>"Example Subject", "text"=>"testingtextbody", "from"=>"[email protected]"}
你可以分配一个散列到一个变量,修改值,然后使用uri.query_values=
重新分配它们。
如果你想要一个比HTTPClient更简单的接口,Ruby的Open-URI就像它来的一样简单。这将发出一个请求的URL,将结果返回给引入nokogiri解析的XML:
doc = Nokogiri::XML(open(uri.to_s))
返回的XML响应“sposed根据您链接到该网站看起来像这样:
returned_xml = '<result>
<message>success</message>
</result>'
因此,如果我们解析:
doc = Nokogiri::XML(returned_xml)
我们可以得到在轻松的回应:
doc.at('message').inner_text # => "success"
我无法显示完整的往返示例,因为我没有帐户,但应该让您滚动。
对不起,忘了说我正在构建应用程序。我更新了帖子,提供了更多信息 – 2011-02-08 06:11:34