powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа в WININET
4 сообщений из 4, страница 1 из 1
Работа в WININET
    #39450473
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь понять как работает бибилотека 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 разметку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
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();

}
...
Рейтинг: 0 / 0
Работа в WININET
    #39450475
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
polin11,
url на части разбить нужно

host - параметром в InternetConnect передавать
path с параметрами - в HttpOpenRequest (3-й параметр)
...
Рейтинг: 0 / 0
Работа в WININET
    #39450487
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поясните пожалуйста на примере news.sportbox.ru/Vidy_sporta/plavanie, что куда передавать. Спасибо за оперативный ответ
...
Рейтинг: 0 / 0
Работа в WININET
    #39450490
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
polin11Поясните пожалуйста на примере news.sportbox.ru/Vidy_sporta/plavanie, что куда передавать. Спасибо за оперативный ответ
Код: plaintext
1.
2.
InternetConnect( ,"news.sportbox.ru", ...)
HttpOpenRequest(,,"/Vidy_sporta/plavanie", ...)



полно же готовых ответов в сети - http://www.cyberforum.ru/win-api/thread903513.html например
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа в WININET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]