“Accept-Encoding: gzip, deflate”问题

转载至http://zhidao.baidu.com/link?url=fG_OjaFDrklRpdeRpH_tlALrvNibI_IQnfMElOtdzNQ5MiLqM_4L039LCYXfPe-b7-5eAqGRbw67LEVDEVSy-KtqmQeDGasYY3qUQXOJ1jy

用ruby写的请求网页的程序,输出的文本是乱码

以下是代码,试了各种网上常见的方法,均不可行。
#encoding: UTF-8
#!/usr/bin/ruby

require 'net/http'
require 'nokogiri'
require 'uri' 
require 'utf8-cleaner'
require 'iconv'

def sendhttp(hash)
	    http = Net::HTTP.new(hash['domain'],443)  
	    http.use_ssl = true  
	    resp = http.get(hash['uri'],hash['headers'])
	    if resp.code == '200'
		        return resp.body
	    else
		        return false
	    end
end

headers = {   ##定义http请求头信息  
  'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:18.0) Gecko/20100101 Firefox/18.0',
  'Content-Type' => 'application/x-www-form-urlencoded',  
  'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language' => 'zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3',
  'Accept-Encoding' => 'gzip, deflate',
  'Connection' => 'keep-alive',
}  

para 	= Hash.new
para['domain'] 	= 'access.redhat.com'
para['headers'] = headers
para['uri'] 	= '/security/cve/CVE-2014-4877'

output 	= sendhttp(para)
puts output
可以直接运行的。
提问者采纳
因为你用了 'Accept-Encoding' => 'gzip, deflate',发回来的内容是zip流,你应该去掉Accept-Encoding这一行即可。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值