Tag: http

如何使用Ruby HTTP :: Net处理404错误?

我正在尝试解析网页,但有时会出现404错误。 这是我用来获取网页的代码: result = Net::HTTP::get URI.parse(URI.escape(url)) 如何测试result是否为404错误代码?

在点击Google Contacts API时出现“按对等方重置连接”错误

我正在尝试使用Google Contacts API将Google Contacts添加到Rails应用程序中。 我已完成Oauth2握手,现在正在使用我的访问令牌请求受保护资源。 这是代码: uri = URI(‘https://www.google.com/m8/feeds/contacts/default/full’) params = { :client_id => APP_CONFIG[:google_api_client_id], :access_token => auth.access_token, “max-results”.to_sym => max_results } uri.query = URI.encode_www_form(params) res = Net::HTTP.get_response(uri)

在Ruby中发送HTTP / 2 POST请求

我正在尝试使用基于HTTP / 2的新Apple推送通知 API。 我找到了http-2 Ruby gem,但文档并不清楚如何作为客户端发出请求。 如何在Ruby / Rails中发出HTTP / 2请求?

如何查找广告的最终目的地(url)(以编程方式)

这可能是微不足道的,或者不是,但我正在研究一种软件,它将validation通过我的Web应用程序显示的广告的“行尾”域。 理想情况下,我有一个我不想提供广告的域名列表(假设Norton.com就是其中之一),但大多数广告网络通过缩短的,含义模糊的URL(adsrv.com)提供广告,最终重定向到Norton.com。 所以问题是:有任何一个构建,或者知道如何构建,类似刮刀的工具将返回广告的最终目标url。 初步发现:某些广告采用Flash,JavaScript或纯HTML格式。 模拟浏览器是完全可行的,并且可以对抗不同格式的广告。 并非所有Flash或JS广告都有noflash或noscript替代品。 (浏览器可能是必要的,但如上所述,这非常好……使用像WatiN或WatiR或WatiJ或Selenium等的东西……) 喜欢开源,这样我就可以自己重建一个。 真的很感激帮助! 编辑*此脚本需要点击广告,因为它可能是Flash,JS或只是HTML plain。 因此Curl不太可能是一个选项,除非Curl可以点击?

无法使用Net :: HTTP在我的ruby代码中发出HTTP删除请求

我在我的ruby代码中使用Net :: HTTP来发出http请求。 例如,我做了一个post请求 require ‘net/http’ Net::HTTP.post_form(url,{’email’ => email,’password’ => password}) 这很有效。 但我无法发出删除请求,即 require ‘net/http’ Net::HTTP::Delete(url) 出现以下错误 NoMethodError: undefined method `Delete’ for Net::HTTP:Class http://ruby-doc.org/stdlib-1.9.3/libdoc/net/http/rdoc/Net/HTTP.html上的文档显示删除可用。 那么为什么我的情况不起作用呢? 谢谢

Ruby rest-client文件作为具有基本身份validation的多部分表单数据上载

我理解如何使用Ruby的rest-client使用基本身份validation来创建http请求 response = RestClient::Request.new(:method => :get, :url => @base_url + path, :user => @sid, :password => @token).execute 以及如何将文件作为多部分表单数据发布 RestClient.post ‘/data’, :myfile => File.new(“/path/to/image.jpg”, ‘rb’) 但我似乎无法弄清楚如何将两者结合起来将文件发布到需要基本身份validation的服务器。 有谁知道创建此请求的最佳方法是什么?

如何在Ruby下载之前获取远程文件的mtime?

我有以下代码,只需下载文件并保存。 我想每隔30秒运行一次,检查远程文件的mtime是否已更改,如果有,则下载它。 为了这个目的,我将创建一个在无限循环的每次迭代后hibernate30秒的线程,但是; 如何在不下载的情况下检查远程文件的mtime? Net::HTTP.start($xmlServerHostname) { |http| resp = http.get($xmlServerPath+”levels.xml”) open(“levels.xml”, “w”) { |file| file.write(resp.body) } }

通过Net :: HTTP在Ruby中发送http post请求

我正在向Web服务发送带有自定义标头的请求。 require ‘uri’ require ‘net/http’ uri = URI(“https://api.site.com/api.dll”) https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true headers = { ‘HEADER1’ => “VALUE1”, ‘HEADER2′ => “HEADER2” } response = https.post(uri.path, headers) puts response 它没有用,我收到的错误是: /usr/lib/ruby/1.9.1/net/http.rb:1932:in `send_request_with_body’: undefined method `bytesize’ for # (NoMethodError) 我该如何解决这个问题? PS Ruby 1.9.3

如何调试/显示使用RestClient发送的请求

我试图使用RestClient使用post方法访问web服务。 我正在发送指定的授权令牌,但我仍然收到403状态错误,这意味着我被禁止使用该api。 有什么方法可以看到使用http post发送的请求,以便我可以validation标头? 我无法找到任何示例或任何文件提到如何做到这一点? 我的代码与此类似: token = get_token response = RestClient.post “https://api-dev.xxx.com/software/services/search/ABC”, :authorization => “Bearer #{token}”

如何打印有关NET:HTTPRequest的信息以进行调试?

我是来自Java的Ruby的新手。 我正在尝试创建一个http get请求,我得到一个400的http响应代码。我通过http调用的服务非常特别,我很确定我的请求不完全正确。 在我执行head请求(下面)之后“查看” req对象是有帮助的,以便仔细检查正在发送的request_headers是否是我认为我正在发送的内容。 有没有办法打印出req对象? req = Net::HTTP.new(url.host, url.port) req.use_ssl = true res = req.head(pathWithScope, request_headers) code = res.code.to_i puts “Response code: #{code}” 我试过这个: puts “Request Debug: #{req.inspect}”但它只打印出来: #