HanDs
管理员

[Delphi文章] IDHTTP与HTTPSEND的区别 



关于代理:
IDHTTP与HTTPSEND都能使用代理,他们的功能几乎相似,而且语法也差不多!

HTTPSEND
 

delphi 代码
 
httpsend.ProxyHost := tIP;   //代理IP
httpsend.ProxyPort := tPort;   //代理端口(STRING)
httpsend.ProxyUser :='';    //账号(如果没有可以不设定)
httpsend.ProxyPass :='';   //密码

 

IDHTTP

delphi 代码
 
IdHTTP.ProxyParams.ProxyServer := tIP;      //代理IP
IdHTTP.ProxyParams.ProxyPort := tPort;      //代理端口(Integer)
IdHTTP.ProxyParams.ProxyUsername := '';   //你的用户名:= tIP;
IdHTTP.ProxyParams.ProxyPassword := '';   //你的密码

关于超时:

HTTPSEND: 
HTTPSEND.Timeout:= 1000;

IDHTTP:
IdHTTP.ReadTimeout := 1000;

关于自定义头:

HTTPSEND:

delphi 代码
 
VAR
HeadData :string
begin
//开始定义
HeadData := 'Accept:*/*'#13#10;
HeadData := HeadData+'Referer:'+URL2+#13#10;
HeadData := HeadData+'Accept-Language:zh-cn'+#13#10;
HeadData := HeadData+'Accept-Encoding:gzip,deflate'+#13#10;
//加入定义好的头文件
HTTPSEND.Headers.Add(HeadData);
//发送POST
HTTPSEND.HTTPMethod('POST', tURL1);
end;

IDHTTP:

delphi 代码
 
var
myParams:tStringList;
begin
myParams:=tStringList.Create;
myParams.Text:='发送的数据';
//加入自定义头
IdHTTP.Request.SetHeaders;
IdHTTP.Request.CustomHeaders.Text:='X-AjaxPro-Method: TEST';//加入你自定义的头
//下面是IDHTTP已经定义好的,输入值就可以!其他的可以自己查查!
idhttp.Request.Accept:='*/*';  
idhttp.Request.AcceptLanguage:='zh-cn';
idhttp.Request.AcceptEncoding:='gzip, deflate';
//开始发送数据
IdHttp.Post(tURL1, myParams);
end;

关于协议版本
      HTTPSEND与IDHTTP默认发送都是HTTP 1.0,那么如何发送HTTP 1.1呢?

HTTPSEND

 httpsend.Protocol:='1.1';

IDHTTP

 IdHTTP.HTTPOptions:=IdHTTP.HTTPOptions+[hoKeepOrigProtocol]; //关键这行
 IdHTTP.ProtocolVersion:=pv1_1;

其实还有很多细节问题,以后再补充吧!使用HTTPSEND 与 IDHTTP都能完美模拟发送POST数据!


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
IDHTTP HTTPSEND 的区别
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组
快速回复