Tag: net http

为什么我得到Net :: HTTP“请求路径为空”错误?

我正在使用Net :: HTTP发出HTTP请求。 我收到错误“HTTP请求路径为空”,但我强烈认为它不是。 代码如下: REQUEST_IP = “localhost” REQUEST_PORT = “8081” REQUEST_PATH = “myweb/rest” def customServiceMailAndMessageRequest user_id, message url = ‘http://’ + REQUEST_IP + “:” + REQUEST_PORT + “/” + REQUEST_PATH + ‘/users/’ + user_id + ‘/messages/sendMailAndMessage?message=’ + message uri = URI(url) request = Net::HTTP::Get.new(uri.path) request[‘Content-Type’] = ‘application/json’ request[‘Accept’] = ‘application/json’ response = Net::HTTP.new(uri.host,uri.port) do […]

TypeError:无法将Net :: HTTPOK转换为String

我正在使用net/http和json使用谷歌的地理编码API对地址进行地理编码。 这是抛出错误的地方: response = Net::HTTP.get_response(URI.parse(url)) result = JSON.parse(response) 响应是Net :: HTTPOK类,但我想访问实际的JSON响应数据(而不仅仅是状态代码)。

如何使用socksify gem(代理)抓取网站

我正在阅读Rubyforge上的socksify gem的文档。 我已成功安装了gem,并且已成功运行此文档代码以测试我的本地实现是否可以复制它: require ‘socksify/http’ uri = URI.parse(‘http://rubyforge.org/’) Net::HTTP.SOCKSProxy(‘127.0.0.1’, 9050).start(uri.host, uri.port) do |http| http.get(uri.path) end # => # 但我如何刮’http://google.com/’并获取HTML内容? 我希望用例如Nokogiri解析它: Nokogiri::HTML(open(“http://google.com/))

使用net / http发送Post请求

我需要将JSON中的数据发送到在同一台计算机上运行的另一个应用程序。 我这样发送请求(rails 3.2.13) data = { //some data hash } url = URI.parse(‘http://localhost:6379/api/plans’) resp, data = Net::HTTP.post_form(url, data.to_JSON ) p resp p data { resp: resp, data: data.to_JSON } 但我得到Net::HTTPBadResponse (wrong status line: “-ERR unknown command ‘POST'”):我该如何解决这个问题? 更新1 更新了我的代码@ Raja-d建议 url = URI.parse(‘http://localhost:6379/v1/sessions’) http = Net::HTTP.new(url.host, url.port) http.use_ssl = true resp, data = Net::HTTP.post_form(url, data) […]

Ruby,Tor和Net :: HTTP :: Proxy

如果这是一个无耻的怀疑我提前道歉:我想在我的Ruby代码中使用代理来获取一些网页。 而且我想偷偷摸摸! 所以我正在使用Tor。 我有Tor运行,我可以像往常一样使用Net :: HTTP.get(uri)。 但我无法弄清楚如何使用Net :: HTTP :: Proxy来获取uri。 我也无法弄清楚如何使用Tor来帮助我取消匿名。 任何帮助是极大的赞赏。 请不要只为Net :: HTTP :: Proxy添加ruby-doc页面的链接 。 如果我明白了,我不会在这里问这个:-) 另一种简单的方法是使用SOCKSify ,但在这种情况下,我收到以下错误: /usr/lib/ruby/gems/1.9.2-p290/gems/socksify-1.5.0/lib/socksify.rb:189:in ‘socks_authenticate’: SOCKS version not supported (SOCKSError) 我之前从未做过任何网络编程。 任何关于此的指导也将非常有帮助。 谢谢 :-)

使用Net :: HTTP的块forms的HTTPS请求 – 是否可能?

要执行不带阻止表单的Net :: HTTP https请求,您可以执行以下操作: … http = Net::HTTP.new(url.host, url.port) http.use_ssl = true … 但有没有办法告诉Net :: HTTP在执行块表单时使用https? u = URI.parse(url) Net::HTTP.start(u.host, u.port) do |http| # if I put http.use_ssl = true here, ruby complains that this can’t # be done becuase the sesion has already started resp = http.get(u.request_uri) end 我在ruby1.8.7上

Ruby未定义的方法`bytesize’用于#

我有以下Ruby代码,用于沙箱模式的跟踪网站: require “net/http” require “net/https” require “uri” xml = <<XML XML uri = URI(‘https://cig.dhl.de/services/sandbox/rest/sendungsverfolgung’) nhttp = Net::HTTP.new(uri.host, uri.port) nhttp.use_ssl=true nhttp.verify_mode=OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(uri) request.basic_auth ‘xpackageWP’, ‘hidden’ response = nhttp.start {|http| http.request(request, xml:xml) } puts response.body 我总是得到错误: d:/Ruby200/lib/ruby/2.0.0/net/http/generic_request.rb:179:in `send_request_with_body’ undefined method `bytesize’ for # (NoMethodError) from d:/Ruby200/lib/ruby/2.0.0/net/http/generic_request.rb:130:in `exec’ from d:/Ruby200/lib/ruby/2.0.0/net/http.rb:1404:in `block in transport_request’ from d:/Ruby200/lib/ruby/2.0.0/net/http.rb:1403:in `catch’ […]

如何在ruby中设置自定义用户代理

我的任务是通过自动化测试URL上的不同用户代理。 我正在使用ruby进行编码,我一直在尝试使用以下方法设置用户代理,但它似乎无法识别用户代理。 @http = Net::HTTP.new(URL) response = @http.request_get(URL, {‘User-Agent’ => useragent}) 有没有其他方法可以做到这一点,或者我做错了什么?

Ruby的’open-uri’和’Net:HTTP’gem有什么区别?

看起来这两个gem执行非常相似的任务。 任何人都可以举例说明一块gem比另一颗gem更有用吗? 我没有具体的代码,我更想知道每个gem的一般用例。 我知道这是一个简短的问题,我会根据要求填写空白。 谢谢。

在发出请求之前从Ruby Net :: HTTP请求获取标头

在Ruby中,如何在实际发出请求之前获取将由net / http或open-uri请求发送的HTTP请求标头。 在某些情况下,在URI中创建签名字符串时会使用标头。 当然有一些方法可以获取将要发送的请求标头。 例如,这些应该包括“Host:”标题。