Форум: "Сети";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизКак наладить 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c