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);
Авторизация на HTTP сервере
появляется окошко с запросом логина и пароля. Введя логин пароль
я туда номально вхожу.
---------------------------------------
Теперь проблема в том, что мне надо на этот сервак входить не самому, а программе. - а мне сервак на любую команду отвечает:
400 Bad Request.
Цитата: bave
При входе на HTTP сервер (сервер не Apache, а какой-то Nucleos)
появляется окошко с запросом логина и пароля. Введя логин пароль
я туда номально вхожу.
---------------------------------------
Теперь проблема в том, что мне надо на этот сервак входить не самому, а программе. - а мне сервак на любую команду отвечает:
400 Bad Request.
появляется окошко с запросом логина и пароля. Введя логин пароль
я туда номально вхожу.
---------------------------------------
Теперь проблема в том, что мне надо на этот сервак входить не самому, а программе. - а мне сервак на любую команду отвечает:
400 Bad Request.
А самому это как - лично что ли?:D Так в чем вопрос? 400-я ошибка="неправльный запрос". Какой метод у тебя и какая строка запроса?
запрос GET использовал на стартовую страницу.
Цитата: bave
запрос GET использовал на стартовую страницу.
Извини, но я не экстрасенс.
Да и по аватарах тут проблемы не снимают. Пример приведешь?
Код:
юзерагент попробуй поставить с какого-нибудь браузера.
Цитата: 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);
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
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] указал, потому что глюк на форуме. И плохо, что вложенные теги нельзя делать
еще, у тебя идёт такой запрос...
Код:
GET /192.168.1.1/ 1.0
должно быть
Код:
GET / HTTP/1.1
что тебе тоже указал SkyM@n в своём примере.
(HTTP тоже указал):
Вот так ответил:
Server: HTTP/1.1 401 Unauthorized
Server: Nucleus/4.3 UPnP/1.0 Virata-EmWeb/R6_2_0
WWW-Authenticate: Basic realm="MT880"
Теперь наверно ему надо как-то логин с паролем передать...
Цитата: 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"
Теперь наверно ему надо как-то логин с паролем передать...
(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.
я добавил в заголовок запроса:
"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=/
А дальше само тело ответа...