Tag: http headers

Ruby – 使用标头发送GET请求

我想用一个网站的api来使用ruby。 说明是发送带有标头的GET请求。 这些是来自网站的说明和他们提供的示例php代码。 我要计算一个HMAC哈希并将其包含在apisign头下。 $apikey=’xxx’; $apisecret=’xxx’; $nonce=time(); $uri=’https://bittrex.com/api/v1.1/market/getopenorders?apikey=’.$apikey.’&nonce=’.$nonce; $sign=hash_hmac(‘sha512’,$uri,$apisecret); $ch = curl_init($uri); curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘apisign:’.$sign)); $execResult = curl_exec($ch); $obj = json_decode($execResult); 我只是在命令提示符下使用安装在windows上的ruby的.rb文件。 我在ruby文件中使用net / http。 如何发送带标题的GET请求并打印响应?

如何在使用Ruby mechanize加载页面之前设置Referer标头?

有没有一种直接的方法来使用Mechanize 2.3设置自定义标头? 我试过以前的解决方案,但得到: $agent = Mechanize.new $agent.pre_connect_hooks << lambda { |p| p[:request]['Referer'] = 'https://wwws.mysite.com/cgi-bin/apps/Main' } # ./mech.rb:30:in `’: undefined method `pre_connect_hooks’ for nil:NilClass (NoMethodError)

主动资源响应,如何获取它们

我有一个活动资源,我查询数据。 它返回记录,计数,无论我要求什么。 例如:product = Product.find(123) 响应头应该包含一个自定义属性,比如“HTTP_PRODUCT_COUNT = 20”,我想检查响应。 IRB最有效的方法是什么? 我没有奢侈的Rails或其他可能提供底层响应的框架。 我是否需要使用monkeypatched调用或其他东西攻击Net :: HTTP或ActiveResource本身?

从Sinatra访问标头

我试图访问sinatrafilter中的标头。 我的请求包括标题“HTTP_AUTH”,但我无法访问它。 我的filter是 before do halt 403 unless request[‘HTTP_AUTH’] == ‘test’ end 它在我的机架测试中正常工作。 browser.get ‘/mypath’, “CONTENT_TYPE” => “application/json”, “HTTP_AUTH” => ‘test’ 但是当我从其他来源尝试时,我无法访问它。 如果我puts request.env我可以看到令牌在请求中,但我无法访问它。 “HTTP_CONNECTION”=>”close”, “HTTP_AUTH”=>”test”, “HTTP_ACCEPT”=>”application/json”, 我究竟做错了什么?

通过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

如何在使用Ruby的OpenUri下载之前获取HTTP头

我目前正在使用OpenURI在Ruby中下载文件。 不幸的是,似乎无法在不下载完整文件的情况下获取HTTP标头: open(base_url, :content_length_proc => lambda {|t| if t && 0 t) end }, :progress_proc => lambda {|s| pbar.progress = s if pbar }) {|io| puts io.size puts io.meta[‘content-disposition’] } 运行上面的代码表明它首先下载完整的文件,然后才打印我需要的标题。 有没有办法在下载完整文件之前获取标题,所以如果标题不是我期望的那样,我可以取消下载?

如何使用修改过的标头进行HTTP GET?

使用修改后的头文件在Ruby中发出HTTP GET请求的最佳方法是什么? 我想从日志文件的末尾获取一系列字节,并且一直在使用以下代码,但是服务器正在抛出一个响应,说“这是服务器无法理解的请求”(服务器是阿帕奇)。 require ‘net/http’ require ‘uri’ #with @address, @port, @path all defined elsewhere httpcall = Net::HTTP.new(@address, @port) headers = { ‘Range’ => ‘bytes=1000-‘ } resp, data = httpcall.get2(@path, headers) 有没有更好的方法在Ruby中定义标头? 有谁知道为什么这会对Apache失败? 如果我在浏览器中访问http://[address]:[port]/[path]我会得到我正在寻找的数据而没有问题。