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

Вниз

WinSock и ProxyServer. Правильная форма HTTP запроса   Найти похожие ветки 

 
DVM ©   (2006-08-25 16:48) [0]

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

 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;

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


 
DVM ©   (2006-08-25 16:51) [1]

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


      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;


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

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


 
DVM ©   (2006-08-30 12:02) [3]

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


 
Reindeer Moss Eater ©   (2006-08-30 12:13) [4]

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


 
DVM ©   (2006-08-30 12:15) [5]


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

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

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


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;


 
umbra ©   (2006-08-30 12:24) [6]

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

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


 
Reindeer Moss Eater ©   (2006-08-30 12:30) [7]

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

basic, digest, ntlm


 
DVM ©   (2006-08-30 12:31) [8]


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

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


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

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


 
DVM ©   (2006-08-30 12:34) [9]


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

спасибо


 
atruhin ©   (2006-08-30 14:19) [10]

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


 
DVM ©   (2006-08-30 14:40) [11]


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

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


 
atruhin ©   (2006-08-30 20:44) [12]

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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.038 c
15-1168621866
AntiUser
2007-01-12 20:11
2007.02.04
Несколько уязвимостей в ядре Linux


3-1159957776
SDA
2006-10-04 14:29
2007.02.04
Ломается кодировка Delphi-MysQL!!!???


1-1165575251
Hell's Angel
2006-12-08 13:54
2007.02.04
Динамический вызов dll с формой


2-1169323277
CaLL|ok
2007-01-20 23:01
2007.02.04
Как правильно оформить цикл?


8-1149882016
ZV
2006-06-09 23:40
2007.02.04
LPT port