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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа в WININET 
:(
    Опции темы
polin11
Дата 9.5.2017, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пытаюсь понять как работает бибилотека wininet. Заметл если задавать адрес без слэша "/" например mail.ru, уandex.ru, 
news.yandex.ru и т.д., HTML разметка приходит, если же задать адрес со слешем например
news.sportbox.ru/Vidy_sporta/plavanie или https://news.mail.ru/society/29683770/?frommail=1 
HTML разметки нет, помогите понять причину в результате нужно получить HTML разметку

Код

void put_html(string url)
{
   if((int)url.find("http://")!=-1)
   {
       cout<<url.find("http://") <<endl;
       url=url.substr(url.find("http://")+7, url.size()-url.find("http://")-7);
   }
   if((int)url.find("https://")!=-1)
       url=url.substr(url.find("https://")+8, url.size()-url.find("https://")-8);

    bool ok = false;
    // Инициализация WinInet
    HINTERNET hInternet = ::InternetOpen(
        TEXT("WinInet Test"),
        INTERNET_OPEN_TYPE_PRECONFIG,
        NULL,
        NULL,
        0);
 
    if (hInternet != NULL)
    {
        // Открывает HTTP сессию
        HINTERNET hConnect = ::InternetConnect(
            hInternet,
            TEXT(url.c_str()), 
            INTERNET_DEFAULT_HTTP_PORT,
            NULL,
            NULL,
            INTERNET_SERVICE_HTTP,
            0,
            1u);
 
        if (hConnect != NULL)
        {
            // открываем запрос
            HINTERNET hRequest = ::HttpOpenRequest(
                hConnect,
                TEXT("GET"),
                TEXT(""), 
                NULL,
                NULL,
                0,
                INTERNET_FLAG_KEEP_CONNECTION,
                1);
 
            if (hRequest != NULL)
            {
                // посылаем запрос
                BOOL bSend = ::HttpSendRequest(hRequest, NULL, 0, NULL, 0);
                if (bSend)
                {
                    // создаем выходной файл
                    ofstream fnews("new.txt", ios::out | ios::binary);
                    if (fnews.is_open())
                        for (;;)
                        {
                            // чиаем данные
                            char szData[1024];
                            DWORD dwByteRead;
                            BOOL bRead = ::InternetReadFile(
                                hRequest,
                                szData,
                                sizeof(szData)-1,
                                &dwByteRead);
 
                            // выход из цикла при ошибке или завершения
                            if (bRead == FALSE || dwByteRead == 0)
                                break;
 
                            // сохраняем результат
                            szData[dwByteRead] = 0;
                            fnews << szData;
                            html1+=szData;
 
                            ok = true;
                        }
                        fnews.close();
                }
                // закрыываем запрос
                ::InternetCloseHandle(hRequest);
            }
            // закрываем сессию
            ::InternetCloseHandle(hConnect);
        }
        // закрываем WinInet
        ::InternetCloseHandle(hInternet);
    }
    //fnews.close();

}


PM MAIL   Вверх
Google
  Дата 21.5.2019, 08:45 (ссылка)  





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


 




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


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

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