Delphi中强制IdHTTP使用HTTP1.1(转)

Delphi中强制IdHTTP使用HTTP1.1(转)Delphi中强制IdHTTP使用HTTP1.1(转)标签:delphiwindows工具server2011-07-1807:46952人阅读评论(0)收藏举报分类:DelphiIdHttp控件(29)前两天帮人写程序用IdHTTP控件往一网站发包如下:Delphi代码IdHTTP1.Request.Connection:=’Keep-A…

大家好,又见面了,我是你们的朋友全栈君。

Delphi中强制IdHTTP使用HTTP1.1(转)

标签: delphiwindows工具server

2011-07-18 07:46 952人阅读 评论(0) 收藏 举报

Delphi中强制IdHTTP使用HTTP1.1(转) 分类:

Delphi IdHttp控件(29) Delphi中强制IdHTTP使用HTTP1.1(转)

 

前两天帮人写程序

用IdHTTP控件往一网站发包

如下:

Delphi代码
IdHTTP1.Request.Connection:=’Keep-Alive’;    
IdHTTP1.Request.UserAgent:=’Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)’;    
IdHTTP1.Request.ContentType:=’application/x-www-form-urlencoded’;    
IdHTTP1.Request.Referer:=’http://www.xxx.com’;    
IdHTTP1.Request.Accept:=’image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*’;    
IdHTTP1.Request.AcceptLanguage:=’zh-cn’;    
IdHTTP1.Request.AcceptEncoding:=’gzip, deflate’;    
IdHTTP1.Request.CacheControl:=’no-cache’;    
IdHTTP1.ReadTimeout:=60000;    
IdHTTP1.ProtocolVersion:=pv1_1;    
sHtml:=IdHTTP1.Post(‘http://www.xxx.com/login.asp’,sPost);   

但用抓包工具看,却发现是用的http1.0,而不是http1.1,明明设置了IdHTTP1.ProtocolVersion:=pv1_1

查看INDY的源码,发现在IdHTTP.pas中有如下代码和注释:

Delphi代码
OldProtocol := FProtocolVersion;    
// If hoKeepOrigProtocol is SET, is possible to assume that the developer    
// is sure in operations of the server    
if not (hoKeepOrigProtocol in FOptions) then   
  FProtocolVersion := pv1_0;   

原因很明显了,于是改代码:

Delphi代码
IdHTTP1.Request.Connection:=’Keep-Alive’;    
IdHTTP1.Request.UserAgent:=’Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)’;    
IdHTTP1.Request.ContentType:=’application/x-www-form-urlencoded’;    
IdHTTP1.Request.Referer:=’http://www.xxx.com’;    
IdHTTP1.Request.Accept:=’image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*’;    
IdHTTP1.Request.AcceptLanguage:=’zh-cn’;    
IdHTTP1.Request.AcceptEncoding:=’gzip, deflate’;    
IdHTTP1.Request.CacheControl:=’no-cache’;    
IdHTTP1.ReadTimeout:=60000;    
IdHTTP1.HTTPOptions:=IdHTTP1.HTTPOptions+[hoKeepOrigProtocol];//关键这行    
IdHTTP1.ProtocolVersion:=pv1_1;    
sHtml:=IdHTTP1.Post(‘http://www.xxx.com/login.asp’,sPost);   

再用抓包工具看,能看到确实是使用http1.1协议了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159708.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eidos云矿机_空投挖矿

    eidos云矿机_空投挖矿eidos空投矿机虽然已经有几款网页版的了,甚至还有收费的,但并不适合长期运行,特别是需要挂在VPS里,所以就出现了这款控制台运行的,如果觉得对你有帮助就给个star吧。项目地址https://github.com/donjan-deng/eidos-miner环境需求nodejs>=10scatter>=11(网页版可在低版本运行)使用方法也有个简易的网页版…

    2022年9月30日
  • 机房收费系统——组合查询

    机房收费系统——组合查询机房收费系统——组合查询

    2022年4月24日
  • amule 服务器 使用方法

    amule 服务器 使用方法

    2021年5月2日
  • loadrunner-11安装+激活成功教程+汉化(提供安装包,激活成功教程方式,汉化包)

    loadrunner-11安装+激活成功教程+汉化(提供安装包,激活成功教程方式,汉化包)loadrunner-11安装+激活成功教程+汉化(提供安装包,激活成功教程方式,汉化包)一、loadrunner-11安装下载地址: 链接:https://pan.baidu.com/s/10meUz5DfkS8WleLSOalCtQ 提取码:iw0p      由于LR11安装包三个多G,没办法上传到CSDN上,就用百度云去下载,注意下载时选择足够的盘符空间;      …

    2022年7月22日
  • mysql的访问端口是什么意思_数据库端口是什么端口号

    连接SQL数据库时,不指定端口号时是不是就默认端口号是1433?SQLServer服务器默认监听的端口号是1433,如果服务器的端口不是1433,简单的链接方法可以在服务器IP地址后面写逗号和制定端口,例如:如何设置sqlserver端口号可以在’配置工具’–>’SQLSERVER配置管理器’—>’SQLSERVER网络配置’—>’实例名。协议’–>…

    2022年4月8日
  • 11尺寸长宽 iphone_iPhone11屏幕尺寸

    11尺寸长宽 iphone_iPhone11屏幕尺寸【iPhone11屏幕尺寸】iPhone11系列屏幕继续沿用“全面屏”设计,由苹果初代手机开始,iPhone的屏占比越做越高,同时屏幕尺寸越做越大。iPhone11屏幕尺寸是多少呢?我们一起来看看吧。iPhone11屏幕尺寸iPhone11屏幕采用6.1英寸1792*828分辨率全面屏,屏幕像素密度为326ppi,最大亮度可达625尼特,材质为LCD面板。iPhone11Pro屏幕采用5.8英寸2…

    2022年5月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号