⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 02 - customizing http request headers.rb

📁 O Reilly Ruby Cookbook source code
💻 RB
字号:
require 'net/http'require 'uri'#A simple wrapper method that accepts either strings or URI objects#and performs an HTTP GET.module Net  class HTTP    def HTTP.get_with_headers(uri, headers=nil)      uri = URI.parse(uri) if uri.respond_to? :to_str      start(uri.host, uri.port) do |http|        path_query = uri.path + (uri.query ? ('?' + uri.query) : '')        return http.get(path_query, headers)      end    end  endend#Let's get a web page in German.res = Net::HTTP.get_with_headers('http://www.google.com/',                                 {'Accept-Language' => 'de'})#Check a bit of the body to make sure it's really in German.s = res.body.sizeres.body[s-200..s-140]# => "ngebote</a> - <a href=/intl/de/about.html>Alles \374ber Google</"#---Net::HTTP.get_with_headers(url, {'User-Agent' => 'Ruby Web Browser v1.0'})#---uncompressed = Net::HTTP.get_with_headers('http://www.cnn.com/')uncompressed.body.size# => 65150gzipped = Net::HTTP.get_with_headers('http://www.cnn.com/',                                     {'Accept-Encoding' => 'gzip'})gzipped['Content-Encoding']# => "gzip"gzipped.body.size# => 14600require 'zlib'require 'stringio'body_io = StringIO.new(gzipped.body)unzipped_body = Zlib::GzipReader.new(body_io).read()unzipped_body.size# => 65150#---uri = URI.parse('http://www.google.com/')path_query = uri.path + (uri.query ? ('?' + uri.query) : '')request = Net::HTTP::Get.new(path_query)['en_us', 'en', 'en_gb', 'ja'].each do |language|  request.add_field('Accept-Language', language)endrequest['Accept-Language']# => "en_us, en, en_gb, ja"Net::HTTP.start(uri.host, uri.port) do |http|  response = http.request(request)  # ... process the HTTPResponse object hereend#---

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -