1

我正在使用httparty来缩短短 URI,我碰巧遇到了:

HTTParty.get('http://bit.ly/19NoFfn', limit: 50 )

当扩大产量时:

https://sublime.wbond.net/packages/PhpSpec Snippets

这显然会引发:URI::InvalidURIError。

是否可以将一些参数传递给 httparty 以便它在尝试遵循它们之前自动尝试对 URI 进行编码?

4

1 回答 1

2

我解决了我的问题:

def unshorten(uri)
  begin
    response = HTTParty.get(uri, limit: 50)
  rescue URI::InvalidURIError => error
    bad_uri = error.message.match(/^bad\sURI\(is\snot\sURI\?\)\:\s(.*)$/)[1]
    good_uri = URI.encode bad_uri
    response = self.unshorten good_uri
  end
  response
end

从错误消息字符串中获取 URI 我感觉不是特别舒服,但似乎没有其他方法。或者有吗?:)

于 2013-09-08T09:53:49.397 回答