> Подскажите где копать, с чего начатью Спасибо!
Чтобы запрос можно было сделать через прокси, то надо лишь слегка этот запрос модифицировать, ну и подключаться само собой надо к прокси, а не к HTTP серверу и запрос слать опять же прокси.
Вот этот кусочек кода думаю прояснит отличия:
ZeroMemory(@FAddr, SizeOf(FAddr));
FAddr.sin_family := PF_INET;
if UseProxy then
begin
FRequest := 'GET http://' + Host + ':' + inttostr(Port) + Path + ' HTTP/' + HTTPVersion + CRLF +
'Host: ' + Host + ':' + inttostr(Port) + CRLF +
'User-Agent: Mozilla/5.0' + CRLF +
'Accept: */*' + CRLF +
'Keep-Alive: 300' + CRLF +
'Connection: keep-alive';
if BasicAuthorization then FRequest := FRequest + CRLF + 'Authorization: Basic ' + EncodeBase64(UserName + ':' + Password);
if ProxyBasicAuthorization then FRequest := FRequest + CRLF + 'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword);
FRequest := FRequest + CRLFCRLF;
FAddr.sin_addr.s_addr := InetAddr(ProxyHost);
FAddr.sin_port := htons(ProxyPort);
end
else
begin
FRequest := 'GET ' + Path + ' HTTP/' + HTTPVersion + CRLF +
'Host: ' + Host + ':' + inttostr(Port) + CRLF +
'User-Agent: Mozilla/5.0' + CRLF +
'Accept: */*' + CRLF +
'Keep-Alive: 300' + CRLF +
'Connection: keep-alive';
if BasicAuthorization then FRequest := FRequest + CRLF + 'Authorization: Basic ' + EncodeBase64(UserName + ':' + Password);
FRequest := FRequest + CRLFCRLF;
FAddr.sin_addr.s_addr := InetAddr(Host);
FAddr.sin_port := htons(Port);
end;