Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Авторизация на HTTP сервере

279
22 августа 2007 года
bave
456 / / 07.03.2004
При входе на HTTP сервер (сервер не Apache, а какой-то Nucleos)
появляется окошко с запросом логина и пароля. Введя логин пароль
я туда номально вхожу.
---------------------------------------
Теперь проблема в том, что мне надо на этот сервак входить не самому, а программе. - а мне сервак на любую команду отвечает:
400 Bad Request.
251
22 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: bave
При входе на HTTP сервер (сервер не Apache, а какой-то Nucleos)
появляется окошко с запросом логина и пароля. Введя логин пароль
я туда номально вхожу.
---------------------------------------
Теперь проблема в том, что мне надо на этот сервак входить не самому, а программе. - а мне сервак на любую команду отвечает:
400 Bad Request.


А самому это как - лично что ли?:D Так в чем вопрос? 400-я ошибка="неправльный запрос". Какой метод у тебя и какая строка запроса?

279
22 августа 2007 года
bave
456 / / 07.03.2004
запрос GET использовал на стартовую страницу.
251
22 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: bave
запрос GET использовал на стартовую страницу.


Извини, но я не экстрасенс.
Да и по аватарах тут проблемы не снимают. Пример приведешь?

279
22 августа 2007 года
bave
456 / / 07.03.2004
 
Код:
send(g_httpsocket, "GET /192.168.1.1/ 1.0\r\n", sizeof("GET /192.168.1.1/ 1.0\r\n")-1, 0);
send(g_httpsocket, "Accept: text/html\r\n", sizeof("Accept: text/html\r\n")-1, 0);
send(g_httpsocket, "Accept: *.*\r\n", sizeof("Accept: *.*\r\n")-1, 0);
send(g_httpsocket, "User-Agent: HTTP-client\r\n\r\n", sizeof("User-Agent: HTTP-client\r\n\r\n")-1, 0);
recv(g_httpsocket, g_szAnswer, sizeof(g_szAnswer)-1, 0);
92
22 августа 2007 года
Тень Пса
2.2K / / 19.10.2006
юзерагент попробуй поставить с какого-нибудь браузера.
251
22 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: bave
 
Код:
send(g_httpsocket, "GET /192.168.1.1/ 1.0\r\n", sizeof("GET /192.168.1.1/ 1.0\r\n")-1, 0);
send(g_httpsocket, "Accept: text/html\r\n", sizeof("Accept: text/html\r\n")-1, 0);
send(g_httpsocket, "Accept: *.*\r\n", sizeof("Accept: *.*\r\n")-1, 0);
send(g_httpsocket, "User-Agent: HTTP-client\r\n\r\n", sizeof("User-Agent: HTTP-client\r\n\r\n")-1, 0);
recv(g_httpsocket, g_szAnswer, sizeof(g_szAnswer)-1, 0);


А протокол какой?
Пример:

 
Код:
GET /index.php HTTP/1.1
Accept: */ *
Accept-Language: uk
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.5.20404)
Host: forum.codenet.ru
Connection: Keep-Alive

Акцент на GET /index.php [COLOR=red]HTTP[/COLOR]/1.1
только [COLOR=blue]Accept: */ *[/COLOR] я намеренно через пробел в [COLOR=blue]*/*[/COLOR] указал, потому что глюк на форуме. И плохо, что вложенные теги нельзя делать
92
22 августа 2007 года
Тень Пса
2.2K / / 19.10.2006
а протокол никакой. с намёком на HTTP 1.0 конечно.. но всё таки SkyM@n прав. укажи протокол в первой строке.

еще, у тебя идёт такой запрос...

 
Код:
GET /192.168.1.1/ 1.0
где неверно следующее - в запросе пишешь только путь, без адреса сервера ) (по типу GET http://192.168.1.1/ где-то в древних постах кто-то так посылал ))))

должно быть
 
Код:
GET / HTTP/1.1
например.

что тебе тоже указал SkyM@n в своём примере.
279
22 августа 2007 года
bave
456 / / 07.03.2004
Опа, я в заголовок добавил ещё и host c моим ip и сервак ответил
(HTTP тоже указал):

Вот так ответил:
Server: HTTP/1.1 401 Unauthorized
Server: Nucleus/4.3 UPnP/1.0 Virata-EmWeb/R6_2_0
WWW-Authenticate: Basic realm="MT880"

Теперь наверно ему надо как-то логин с паролем передать...
251
22 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: bave
Опа, я в заголовок добавил ещё и host c моим ip и сервак ответил
(HTTP тоже указал):

Вот так ответил:
Server: HTTP/1.1 401 Unauthorized
Server: Nucleus/4.3 UPnP/1.0 Virata-EmWeb/R6_2_0
WWW-Authenticate: Basic realm="MT880"

Теперь наверно ему надо как-то логин с паролем передать...


Вообще-то хост должен быть удаленным.
На счет программной аутентификации просто укажи переменные окружения $PHP_AUTH_USER и $PHP_AUTH_PW.

279
23 августа 2007 года
bave
456 / / 07.03.2004
Вообщем разобрался с авторизацией, заработало -
я добавил в заголовок запроса:

"Authorization: Basic YWRtaW46YWRtaW4=\r\n\r\n"
--------------------------------------------------

Теперь другая проблема. В загловков ответов почему-то
размер контента не приходит.... вот всё что приходит в заголовках
ответов:

HTTP/1.1 200 OK
Server: Nucleus/4.3 UPnP/1.0 Virata-EmWeb/R6_2_0
Content-Type: text/html
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Set-Cookie: sessionId=10;PATH=/

А дальше само тело ответа...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог