📄 02 - customizing http request headers.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 + -