昨天用上次文章里的代理,测试代理访问web.qq.com,发现访问不了,总是返回400错误。
于是开始测试:
1。检测请求头->去掉代理头->无效
2。用ccproxy-》访问web.qq.com正常通过
3。用ccproxy做二级代码即:http请求->ccproxy->tcpproxy(自己的程序)
此时再转发请求头-> 无效
4。去掉代理->直接请求-》获取请求头-》记录下来先
tcpproxy-》比较,修改请头头信息->发送->无效
tcpproxy-》直接发送记录下来的请求头->无效
5。多次刷新请求->几十次->偶尔一次能正常访问
于是,n个小时过去了。没啥效果。
晚上:
终于搜索到一点相关说明:
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
<a href="http://files.cnblogs.com/cyq1162/tcpproxywithqq.rar"></a>