昨天用上次文章里的代理,测试代理访问Web.QQ.com,发现访问不了,总是返回400错误。
于是开始测试:
1。检测请求头->去掉代理头->无效
2。用CCProxy-》访问web.qq.com正常通过
3。用CCProxy做二级代码即:http请求->CCProxy->TCPProxy(自己的程序)
此时再转发请求头-> 无效
4。去掉代理->直接请求-》获取请求头-》记录下来先
TCPProxy-》比较,修改请头头信息->发送->无效
TCPProxy-》直接发送记录下来的请求头->无效
5。多次刷新请求->几十次->偶尔一次能正常访问
于是,N个小时过去了。没啥效果。
晚上:
终于搜索到一点相关说明:
将把请求头Get http://xxx.com/ http /1.1 和Host : xxx.com 换成以下:
Get / http /1.1 Host :ip地址
于是,web.QQ.com终于能正常访问,[请求的时间延时也要做相应调整]
但是访问163网站时,又出现403错误。
想起163等网站不允许直接IP请求。将请求头改成:
Get / http /1.1 Host :xxx.com地址
于是都可以正常访问。至此,实际去掉Get的[http://主机头]之后,web请求完成测试通过。
-------------------------------------------------------------------------------
接下来测试登陆QQ。
发现登陆超时失败。
中过搜索,在CSDN花了10个资源分下载了一个C#源码,支持QQ/MSN代理登陆。
经过测试与比较:发现QQ需要不断的重复来回接收/发送数据。而且时延要处理好,不然也会超时。
晚上1点半,测试通过,至此,终于完成了。
今天到公司测试了一下,目前正常使用中。。。
至此,一个完成的http网页+QQ的正常功能的代理就出来了。(MSN还没测试,来者自行测试了)
备注说明:在局域网用和在外网用做代理的时候,要正常调整延时的时间。
源代码点此下载
版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:
http://www.cnblogs.com/cyq1162/archive/2010/06/12/1756928.html