Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];

Вниз

Добавление в программу  «Работа через 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
15-1291966167
И. Павел
2010-12-10 10:29
2011.03.27
Разграничение разработки и установки


15-1292001237
картман
2010-12-10 20:13
2011.03.27
преобразование длины волны


15-1292196119
semjuel
2010-12-13 02:21
2011.03.27
Нужен компонент.....


1-1250345651
x-rusik
2009-08-15 18:14
2011.03.27
Фокусировка на DropDownList e


15-1292228985
NailMan
2010-12-13 11:29
2011.03.27
Я все таки сделал это!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский