我已经分析了一个网站,看看数据是如何发送的......但是我遇到了一些问题..
网站使用connect方法连接到网站,就像这个connet到“http://example.com:443”并且http中没有S ..
在Indy或聪明的竞争者中没有这样的方法..只有post,Get,put ..
这是了解我的照片。
所以我如何在indy或聪明的竞争对手中使用这种连接方法.. !!
答案 0 :(得分:2)
CONNECT
用于让客户端通过HTTP代理连接到目标服务器。这是代理SSL连接最常用(但不限于此),例如用于HTTPS的那些连接。
当您在TIdHTTP
属性中配置代理主机:端口时,Indy的CONNECT
组件在内部使用TIdHTTP.ProxyParams
,然后:
请求HTTPS网址。
请求HTTP网址并在hoNonSSLProxyUseConnectVerb
属性中启用TIdHTTP.HTTPOptions
标记。
Indy还有一个TIdConnectThroughHttpProxy
组件,可以与Indy的其他非HTTP TCP客户端一起使用CONNECT
通过HTTP代理代理连接。
答案 1 :(得分:0)
如果我没记错的话,以下基于Synapse的代码将使用OpenSSL库触发CONNECT到端口443 ......
procedure Test;
var HTTP:THTTPSend;
begin
HTTP:=THTTPSend.Create;
try
HTTP.Sock.CreateWithSSL(TSSLOpenSSL);
HTTP.Sock.SSLDoConnect; // CONNECT happens here
HTTP.HTTPMethod('GET','https://www.google.com/');
(...)
finally
HTTP.Free;
end;
end;