Delphi中强制IdHTTP使用HTTP1.1(转)
来源:互联网 发布:wampserver是什么软件 编辑:程序博客网 时间:2024/05/16 18:02
前两天帮人写程序
用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协议了。
转自:http://doudou232102.blog.163.com/blog/static/929810662009218103831599/
DELPHI-idhttp-UTF-8编码乱码解决【转】 http://doudou232102.blog.163.com/blog/static/929810662009218103831599/
- Delphi中强制IdHTTP使用HTTP1.1(转)
- delphi idhttp使用
- delphi 7中使用idhttp抓取网页 解决假死现象
- DELPHI使用IDHTTP操作WEB
- Delphi中idHttp获取网页源文件
- delphi使用IdHTTP模拟提交页面方法
- Delphi使用IdHttp 获取 HttpsURL内容
- DELPHI使用IDHTTP显示网络图片
- Delphi中使用IdHTTP访问基于SSL协议(https)的网站
- http1.0 http1.1 keepalive (转)
- delphi使用IdHTTP模拟提交页面方法总结
- delphi的idhttp的get 和 post的使用
- Delphi 使用idhttp下載显示进度以及大小
- Delphi 使用idhttp下載显示进度以及大小
- Delphi 使用idhttp下載显示进度以及大小
- delphi的idhttp的get 和 post的使用
- delphi的idhttp的get 和 post的使用
- delphi使用IdHTTP模拟提交页面方法总结
- Qt 寻找局域网机器的IP地址
- 令人无法淡定的Qt书----关于数据库模块
- 黑马程序员-生成随机数字
- matlab已知函数表达式和数据,求表达式中的系数
- Android开发之Shap自定义图形
- Delphi中强制IdHTTP使用HTTP1.1(转)
- Android3D游戏开发系列(2)色彩渲染和旋转
- 2011.7.11-7.15 周总结
- Android3D游戏开发系列(1)初识OpenGL
- 03-01 创建和编辑AutoCAD实体(一) 打开和关闭对象
- 推荐个找代码示例的VS 插件 All-In-One Code Framework Sample Browser
- Language of FatMouse
- HTML代码过滤技术
- 转 UITableView 基本使用方法总结