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

Вниз

Как наладить HTTP/HTTPS прокси через IdTCPClient?   Найти похожие ветки 

 
Aleksandr.   (2005-01-11 12:06) [0]

Пользователи начали плакаться, что злобные сисадмины не открывают порт, нужный программе для соединения по TCP с сервером, а для меня эти прокси - вообще незнакомая область. Поглядел я на настройки аськи, покопался с Indy 10, начал делать по образу и подобию. С socks 4-5 все понятно - у IdSocksInfo есть готовые типы vsSocks4-5, а вот что и как сделать с еще двумя пунктами - HTTP и HTTPS? Ничего вразумительного в доках Indy не нашел, сложилось впечатление, что в них вообще эти виды проксей не присутствуют.


 
Seeker ©   (2005-01-11 12:28) [1]

Там все просто, нужно при коннекте послать строку типа
"CONNECT "+Host+":"+Port+" HTTP/1.1"+CRLF+"User-agent: Мой агент"+CRLF+CRLF;
Проанализировать ответ на установление коннекта и вперед.


 
Reindeer Moss Eater ©   (2005-01-11 12:35) [2]

Там не все так просто.
Если прокси требует авторизации, надо будет еще писать её собственную реализацию.
Проще использовать готовый HTTPPort


 
Aleksandr.   (2005-01-11 12:43) [3]

Seeker © :
Спасибо. Странно, у Indy 10 есть какое-то HTTP Tunneling proxy - там нечто подобное в командах, только "HTTP/1.0", соединение устанавливается, но когда я приступаю к чтению буфера, в нем оказывается HTML текст типа страница недоступна и прочее. Может, это то, что надо, просто криво сделано или криво мной обрабатывается?

Reindeer Moss Eater © :
HTTPPort - это что?


 
Seeker ©   (2005-01-11 12:58) [4]


> типа страница недоступна и прочее

Это ответ прокси, его нужно пропустить.


 
Aleksandr.   (2005-01-11 13:08) [5]

Seeker ©  :
Да? А он, падла, не пропускается... я смотрел в IdHTTPTunnelingProxy - он там посылает эту команду, при получении текста, в котором есть ошибка 407, посылает команды с идентификацией, а потом делает чтение, пока чтение не закончится, чтобы пропустить все ответы. И вот после этого в буфере все равно оказывается эта порнография. То ли руки у авторов кривые, то ли я лыжи забыл снять...


 
Reindeer Moss Eater ©   (2005-01-11 13:09) [6]

Это программа, позволяющая работать через HTTP туннель тем программам, которые не имеют в себе поддержки HTTP туннелирующих прокси.


 
Seeker ©   (2005-01-11 13:09) [7]

Т.е. не пропустить, а проанализировать.
если он начинается с:
"HTTPS/1.0 200" или
"HTTPS/1.1 200"или
"HTTP/1.0 200"или
"HTTP/1.1 200" то соединение установленно, иначе нет соединения.
заголовок от прокси идет до CRLF+CRLF.

> Если прокси требует авторизации, надо будет еще писать её
> собственную реализацию.

Как правило базовый тип авторизации, добавляется модуль Base64
и одна строчка в отправляемый запрос.
Кстати такой тип соединения и есть  
> HTTP Tunneling proxy


 
Seeker ©   (2005-01-11 13:12) [8]


> Aleksandr.

Интересно куда ты коннектишься?


 
Reindeer Moss Eater ©   (2005-01-11 13:12) [9]

при получении текста, в котором есть ошибка 407,

Что и требовалось доказать.
От тебя хотят авторизацию.


 
Seeker ©   (2005-01-11 13:23) [10]

Тогда шли такую строку:

   s:=base64encode(user+":"+paswd);
   s:="Authorization: Basic "+s+CRLF+
      "Proxy-authorization: Basic "+s+CRLF;
   s:="CONNECT "+Host+":"+Port+" HTTP/1.0"+CRLF+
   "User-agent: Твой агент"+CRLF+
   s+ CRLF;


 
Aleksandr.   (2005-01-11 14:22) [11]

Seeker © :
У нас в нашей сети есть программа-сервер и HTTP-прокси. Я устанавливаю для TCPClient хост и порт компьютер, на котором программа-сервер и порт, на котором она сидит, а для IdHTTPTunnelingProxy хостом имя прокси-сервера и его порт. Насчет Encode понял, счас истчо попробую.



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

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

Наверх




Память: 0.49 MB
Время: 0.025 c
1-1109279193
akvilon
2005-02-25 00:06
2005.03.13
один TStrings


14-1109096969
Breakmaster
2005-02-22 21:29
2005.03.13
Хостинг для форума


3-1108461764
Oleg_
2005-02-15 13:02
2005.03.13
русские буквы в paradox через BDE


14-1109049605
begin...end
2005-02-22 08:20
2005.03.13
С Днём рождения! 22 февраля


14-1108784018
Doxygen
2005-02-19 06:33
2005.03.13
Знатокам HTML