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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • (二)【Matlab】Matlab矩阵处理

    (二)【Matlab】Matlab矩阵处理【Matlab】

    2022年6月25日
    32
  • sql:常用:group by 多个字段「建议收藏」

    sql:常用:group by 多个字段「建议收藏」首先groupby的简单说明:  groupby一般和聚合函数一起使用才有意义,比如countsumavg等,使用groupby的两个要素:  (1)出现在select后面的字段要么是是聚合函数中的,要么就是groupby中的.  (2)要筛选结果可以先使用where再用groupby或者先用groupby再用having下面看下groupb…

    2022年5月25日
    79
  • awk数组统计

    awk数组统计处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题)1http://www.etiantian.org/index.html2http://www.etiantian.org/1.html3http://post.etiantian.org/index.html4http://mp3.etiantian.org/index.html…

    2022年7月19日
    18
  • UINT32 UINT8 C 语言数据格式[通俗易懂]

    UINT32 UINT8 C 语言数据格式[通俗易懂]UINT32:32BIT无符号型整数unsignedintUINT8:8BIT无符号型整数也就是unsignedchar

    2022年9月6日
    4
  • error 1820 (hy000)_default configuration used

    error 1820 (hy000)_default configuration usedmysql连数据库的时候报错:1251clientdoesnotsupportauthenticationprotocolrequestedbyserver;considerupgradingMysqlclientERROR1396(HY000):OperationALTERUSERfailedfor’root’@’localhost’先登…

    2022年8月12日
    5
  • kali linux用户名密码忘记了怎么办_kali用户名密码

    kali linux用户名密码忘记了怎么办_kali用户名密码1.修改账户的本质对于linux系统来说,一切皆文件,所以修改系统中的设置就是修改一些关联的文件。而修改用户名和密码就是修改系统的设置,只是这个设置比较特殊,这个设置修改起来也较为麻烦和危险。这里需要注意的事项:如果需要同时修改用户名和密码,那么请先修改密码,密码修改成功之后再修改用户名,这一点是一定需要注意的,这样可以避免修改用户名和密码后密码错误或密码正确也无法进入桌面的问题。2.修改密码对于linux系统熟练使用终端进行系统设置是非常方便的,简单来说就是设置步骤一部到位

    2022年9月18日
    2

发表回复

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

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