Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.27;
Скачать: CL | DM;

Вниз

Добавление в программу  «Работа через proxy - сервер»   Найти похожие ветки 

 
Ruzzz ©   (2008-08-03 15:12) [0]

Нужно добвить возможность работы через прокси-сервера которые не поддерживают CONNECT, т.е. возможность использовать GET и POST.

Подскажите где копать, с чего начатью Спасибо!


 
Slym ©   (2008-08-03 18:06) [1]

Начать с протокола...
что за протокол? если HTTP то без проблем пройдет через прокси...
если НЕТ: то облажался :)...
прокси- это HTTP proxy и ничего кроме HTTP не может "проксировать". метод CONNECT позволяет расширить возможности протокола, но в проксях он разрешен (из соображений безопасности) зачастую на ограниченный список портов: 443, ... и пожалуй все :) кстати и прочие методы дальше 80-83, 8080, 3128 нечасто уходят, поэтому ими и проксях и ограничены
решение если не HTTP:
1. перейти на HTTP... коснется и клиента и сервера
2. написать WEB приблуду-конвертер... коснется и клиента и сервера


 
DVM ©   (2008-08-06 11:06) [2]


> Подскажите где копать, с чего начатью Спасибо!

Чтобы запрос можно было сделать через прокси, то надо лишь слегка этот запрос модифицировать, ну и подключаться само собой надо к прокси, а не к 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;


 
xim12   (2009-03-01 09:15) [3]

FAddr.sin_addr.s_addr :=  InetAddr(ProxyHost);
    FAddr.sin_port := htons(ProxyPort);

delphi 7. Вот в этом пишет ошибку InetAddr и htons


 
FireMan_Alexey ©   (2009-03-01 12:08) [4]

>>xim12
Uses Winsock или Winsock2(если найдеш) :)



Страницы: 1 вся ветка

Текущий архив: 2011.03.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
2-1293637967
Qiwi
2010-12-29 18:52
2011.03.27
Добавление препятствия в игру или закраска столбца в StringGrid


4-1246910283
PooHer
2009-07-06 23:58
2011.03.27
COM порт Win API. Проблемы с приёмом.


15-1288982908
Дмитрий Тимохов
2010-11-05 21:48
2011.03.27
Почему JAVA не используется в HighLoad интернет-проектах?


15-1291835265
И. Павел
2010-12-08 22:07
2011.03.27
Везде халтура :)


15-1291881642
DiamondShark
2010-12-09 11:00
2011.03.27
Дай палец -- откусят руку.