Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinSock и ProxyServer. Правильная форма HTTP запроса [D7, WinXP]


DVM ©   (2006-08-25 16:48:00) 

Без прокси сервера мой запрос выглядит так:

 FRequest := 'GET ' + FPath + ' HTTP/1.0'#13#10 +
             'Host: ' + FHost + #13#10 +
             'Authorization: Basic ' + EncodeBase64(FUserName + ':' + FPassword) + #13#10 +
             'Content-type: application/x-www-form-urlencoded'#13#10#13#10;

Что изменить в запросе для работы через прокси?


atruhin   (2006-08-30 20:44:00) [1]

> [11] DVM ©   (30.08.06 14:40)

Значит не внимательно посмотрел. Извени.


DVM   (2006-08-30 14:40:00) [2]


> Только подумай нужен ли кому нибудь прокси поддерживающий
> только 1.0.

А с чего ты взял, что я делаю прокси-сервер??? Я пытаюсь в свою программу добавить поддержку прокси. Программа никак более с прокси не связана.


atruhin   (2006-08-30 14:19:00) [3]

Только подумай нужен ли кому нибудь прокси поддерживающий только 1.0. Будут работать не все программы (ICQ например), более медленный доступ и т.д. Все это, учитывая, что в сети можно найти нормальный, бесплатный прокси на любой вкус


DVM   (2006-08-30 12:34:00) [4]


> Reindeer Moss Eater ©   (30.08.06 12:30) [7]

спасибо


DVM   (2006-08-30 12:31:00) [5]


> Вообще, можно считать что прокси не требует авторизации
> и слать свой запрос. Если прокси ответит кодом 407, то авторизация
> нужна, и надо повторить запрос, добавив в него строку наподобие

Повторять запрос неудобно. Лучше слать сразу со строкой авторизации.
Прокси проигнорирует, если авторизация не требуется.


> Типы авторизации могут быть разными.

какими? Тот, что я привел это Basic HTTP авторизация. Какие еще есть?


Reindeer Moss Eater   (2006-08-30 12:30:00) [6]

А какие бывают?

basic, digest, ntlm


umbra   (2006-08-30 12:24:00) [7]

Вообще, можно считать что прокси не требует авторизации и слать свой запрос. Если прокси ответит кодом 407, то авторизация нужна, и надо повторить запрос, добавив в него строку наподобие
'Proxy-Authorization: Basic ' + EncodeBase64(FProxyUserName + ':' + FProxyPassword) + #13#10

Типы авторизации могут быть разными.


DVM   (2006-08-30 12:15:00) [8]


> зависит от того, какой тип авторизации запросил прокси.

А какие бывают?

Я думаю запрос должен как-то так выглядеть


FRequest := 'GET http://' + FHost + FPath + ' HTTP/1.0'#13#10 +
                 'Host: ' + FHost + #13#10 +
                 'Authorization: Basic ' + EncodeBase64(FUserName + ':' + FPassword) + #13#10 +
                 'Proxy-Authorization: Basic ' + EncodeBase64(FProxyUserName + ':' + FProxyPassword) + #13#10 +
                 'Proxy-Connection: Keep-Alive' + #13#10 +
                 'Content-type: application/x-www-form-urlencoded'#13#10#13#10;


Reindeer Moss Eater   (2006-08-30 12:13:00) [9]

зависит от того, какой тип авторизации запросил прокси.


DVM   (2006-08-30 12:02:00) [10]

Попутно возник еще один вопрос. Насколько я знаю, доступ к прокси может быть ограничен логином/паролем.
Куда в http запрос вставить еще одну пару логин/пароль?


Орион   (2006-08-25 16:53:00) [11]

еще бы Proxy-Connection: Keep-Alive.
Хотя... у тебя же http 1.0))


DVM   (2006-08-25 16:51:00) [12]

Сам разобрался:


      FRequest := 'GET http://' + FHost + FPath + ' HTTP/1.0'#13#10 +
                 'Host: ' + FHost + #13#10 +
                 'Authorization: Basic ' + EncodeBase64(FUserName + ':' + FPassword) + #13#10 +
                 'Content-type: application/x-www-form-urlencoded'#13#10#13#10;


Наверх

Титульная страница Поиск, карта сайта Написать письмо