Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTTP запрос, HTTP запрос 
:(
    Опции темы
batraq
Дата 20.12.2008, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Доброго времени суток всем. Вопрос заключается в том, что никак не могу получить результирующий html код первой странички. Вот примерный код
Код

bool ASocket::asConnectSocket(SOCKET &socket)
{
    char *address = "freekino.timeout.ru";
//    char *address = "www.yandex.ru";
    hostent *host = gethostbyname(address);
    in_addr ip;
    memcpy ((char*)&ip, host -> h_addr, host -> h_length);


    SOCKADDR_IN socketaddr = {0};
    socketaddr.sin_family = PF_INET;
    socketaddr.sin_port = htons(80);
    socketaddr.sin_addr.s_addr = inet_addr(inet_ntoa(ip));

    char *packet = "GET /index.htm HTTP/1.1\r\nHOST: freekino.timeout.ru\r\n";
    int res = connect(socket, (struct sockaddr *)&socketaddr, sizeof(socketaddr));
    res = send(socket, packet, strlen(packet), 0);
    shutdown(socket, SD_SEND);

    char buffer[1024] = {0};
    do
    {
        res = recv(socket, buffer, 1024, 0);
        printf(buffer);
    }
    while(res > 0);

    return true;
}

Как мне кажется http запрос не верен потому как ответа нет вообще никакого, ни байта. Может кто подскажет где косяк? Все структуры и инициализации сокетов проходят успешно. Сам сервак пингуется и доступен.
PM MAIL   Вверх
Void
Дата 21.12.2008, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: нет
Всего: 173



Читать RFC 2616 — Hypertext Transfer Protocol.
Минимальный запрос:
Код

"GET / HTTP/1.1\r\n"
"Host: www.example.com\r\n"
"\r\n"



--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
J0ker
Дата 25.12.2008, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 1
Всего: 14



хедер должен заканчиваться пустой строкой
минимальный запрос "GET / HTTP/1.0\n\n"


--------------------
user posted image
PM MAIL   Вверх
Void
Дата 25.12.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: нет
Всего: 173



Цитата(J0ker @  25.12.2008,  23:21 Найти цитируемый пост)
"GET / HTTP/1.0\n\n" 

\r\n

HTTP/1.1 требует заголовок Host, с учётом распространённости виртуального хостинга не посылать его было бы опрометчиво.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
J0ker
Дата 26.12.2008, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 1
Всего: 14



да, действительно сверился со стандартом - \r\n


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0853 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.