Тема: HTTPS
Показать сообщение отдельно

  #19  
Старый 10.06.2009, 00:09
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

для тех кто в танке вот пример простой на дельфе/ Даже поддержка прокси есть.

Кусок кривоватый, писался давно и наспех. Но работает.
Код:
uses wininet;

function SendPOST(data,proxy_ip:string;proxy_port:word):string;
var
 h_open:HINTERNET;
 h_connect:HINTERNET;
 h_request:HINTERNET;
 s,outs:string;
 l:integer;
 mas:array of char;
begin
 result:='- InternetOpen';
 if proxy_ip<>'' then
 h_open:=InternetOpen('Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))',INTERNET_OPEN_TYPE_PROXY,Pansichar(proxy_ip+':'+inttostr(proxy_port)),nil,0)
else
h_open:=InternetOpen('Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))',INTERNET_OPEN_TYPE_DIRECT,nil,nil,0);
if h_open=nil then exit;
//INTERNET_OPEN_TYPE_PRECONFIG какой удобно тот и юзайть
//INTERNET_OPEN_TYPE_DIRECT
result:='- InternetConnect';
h_connect:=InternetConnect(h_open,'SITE.RU',INTERNET_DEFAULT_HTTPS_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,0);
if h_connect=nil then exit;
result:='- HttpOpenRequests';
h_request:=HttpOpenRequest(h_connect,'POST','/имя_скрипта','HTTP/1.0','SITE.RU',nil,INTERNET_FLAG_SECURE+INTERNET_FLAG_KEEP_CONNECTION,0);
if h_request=nil then exit;
lstrcpy(Pansichar(mas),Pansichar(data));
HttpSendRequest(h_request,'Content-Type: application/x-www-form-urlencoded', 47,mas,length(s));

setlength(mas,1024);
outs:='';
repeat
InternetReadFile(h_request,mas,1024,cardinal(l));
s:=copy(Pchar(mas),1,l);
outs:=outs+s;
until l<=0;
 
Ответить с цитированием