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协议了。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 宝塔搭建php项目是什么_用宝塔怎么修改网站源码

    宝塔搭建php项目是什么_用宝塔怎么修改网站源码宝塔搭建PHP项目宝塔下载地址我选的是linux用宝塔搭建前提是你买的服务器并没有安装任何的镜像与环境进入官网选择你要的然后点击立即安装进入安装教程安装要求根据自己的主机商进入,我的是阿里云的设置一些开放端口添加安全组规则添加这些必要的端口mysql3306的记住一定要放行,这样可用本地工具连接远程服务器的数据库上面设置好之后就可以安装了,我的是Centosyuminstall-ywget&&wget-Oin

  • Python入门篇-基础语法

    Python入门篇-基础语法Python入门篇-基础语法作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.编程基础1>.程序一组能让计算机识别和执行的指令。2>.电子计算机能够执行程序的

  • CFileDialog的使用方法简单介绍

    CFileDialog的使用方法简单介绍

    2021年11月30日
  • Android busybox安装与vim Python IDE开发环境

    Android busybox安装与vim Python IDE开发环境在Android上安装BusyBox0.先要把手机给Root了,具体教程这里就不提供了,网上有很多。1.下载BusyBox的binary,打开这个地址 http://www.busybox.net/downloads/binaries 例如下载了:/downloads/binaries/1.21.1/中的busybox-armv7l2.把下载好的busybox-armv7l用

  • JAVA 实习面试题大全必看

    JAVA实习面试题大全必看JavaSE88基础语法9Q1:简单说说Java有哪些数据类型答:①分为基本数据类型和引用数据类型。②基本数据类型包括:数值型(byte、short、int、long、float、double),字符型(char)以及布尔型(boolean)。除了基本类型外,其他数据类型都属于引用类型,包括类、接口、数组等。Q2:floatnumber=3.4;有没有问…

  • 菜鸟教程python3 mysql_MySQL菜鸟教程

    菜鸟教程python3 mysql_MySQL菜鸟教程页眉内容MySQL教程Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。在本教程中,会让大家快速掌握Mysql的基本知识,并轻松使用Mysql数据库。什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个…

    2022年10月25日

发表回复

您的电子邮箱地址不会被公开。

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