码迷,mamicode.com
首页 > Web开发 > 详细

Ruby——net/http使用代理

时间:2020-02-13 23:22:23      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:环境配置   gzip压缩   net   mac   else   quic   服务   压缩   传输   

环境配置:

确认环境。

ruby -v

技术图片

环境搭建好之后,直接引入内置模块使用即可。

代码样例

使用代理

# -*- coding: utf-8 -*-

require 'net/http'  # 引入内置net/http模块
require 'zlib'
require 'stringio'

# 代理服务器ip 和 端口
proxy_ip = '47.115.5.19'
proxy_port = 16816

# 要访问的目标网页, 以快代理testproxy页面为例
page_url = "https://dev.kuaidaili.com/testproxy"
uri = URI(page_url)

# 新建代理实例
proxy = Net::HTTP::Proxy(proxy_ip, proxy_port)

# 创建新的请求对象 
req = Net::HTTP::Get.new(uri)

# 设置User-Agent
req['User-Agent'] = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
req['Accept-Encoding'] = 'gzip'  # 使用gzip压缩传输数据让访问更快

# 使用代理发起请求, 若访问的是http网页, 请将use_ssl设为false
res = proxy.start(uri.hostname, uri.port, :use_ssl => true) do |http|
    http.request(req)
end

# 输出状态码
puts "status code: #{res.code}"

# 输出响应体
if  res.code.to_i != 200 then
    puts "page content: #{res.body}"
else
    gz = Zlib::GzipReader.new(StringIO.new(res.body.to_s))
    puts "page content: #{gz.read}" 
end

运行下试试,看看结果。成功,code200,
技术图片

进阶学习:

Ruby——net/http使用代理

标签:环境配置   gzip压缩   net   mac   else   quic   服务   压缩   传输   

原文地址:https://www.cnblogs.com/kuaidaili/p/12305443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!