【发布时间】:2014-12-10 20:36:23
【问题描述】:
我正在尝试发送获取请求:
require "net/https"
require "uri"
...
uri = "https://graph.facebook.com/v2.2/#{event_id}?access_token=#{access_token}"
uri = URI.parse(uri)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
response.body
Facebook 给我发送了一个带有| 字符的acces_token,因此uri = URI.parse(uri) 抛出一个错误:URI::InvalidURIError: bad URI(is not URI?) https:/ ....
是否有任何其他解析器,或者我应该手动提取这些主机、端口、request_uri 值?修复它的最佳方法是什么?
access_token 看起来像 141112112181111|9Alz3xW7P0CQ_DRomJN2oMeiwXs
event_id 是例如385101904985590
编辑:刚刚意识到它的结构是APP_ID|some_token
【问题讨论】:
-
您能否发布
access_token和event_id内容的匿名版本,以便我们全面了解您的内容?您可能需要编码access_token。 -
解析器拒绝这个 URI 是正确的,切换到另一个解析器也无济于事:
|在 URI 中是非法的。期间。
标签: ruby