Исходник SendGet

Тема в разделе "C/C++", создана пользователем CleanLegend, 9 сен 2018.

  1. CleanLegend

    Всефорумный модератор

    Регистрация:
    28 мар 2013
    Сообщения:
    251
    Симпатии:
    287
    Класс для отправки get запроса и получения ответа.

    CleanLegend/SendGet(https://github.com/CleanLegend/SendGet)
    Пример использования:

    MyGet MyGetGet;
    std::string myotvet;
    MyGetGet.Init("mysite.com");
    MyGetGet.SendGet("test.php?user=test", myotvet);
    MyGetGet.DeInit();
    
     
    LaRossa, romacaddy, lfhrnthhjh и ещё 1-му нравится это.
  2. УченикДимаса

    УченикДимаса Активный участник

    Регистрация:
    2 июл 2013
    Сообщения:
    45
    Симпатии:
    24
    давайте кто-то еще сделает класс на класс для гет запроса
     
  3. Rinat_Namazov

    Rinat_Namazov ( ͡° ͜ʖ ͡°)
    Проверенный

    Регистрация:
    9 авг 2015
    Сообщения:
    1.013
    Симпатии:
    418
    Целый класс для одного GET запроса.
    Не проще так:
    
    #include <WinInet.h>
    #pragma comment (lib, "WinInet.lib")
    
    enum RequestType
    {
        GET,
        POST
    };
    
    char *SendRequest(int type, char *site, char *file, char *message)
    {
        char *fileAndMessage;
        DWORD size;
        char szBuffer[1024];
        memset(&szBuffer, NULL, sizeof(szBuffer));
    
        HINTERNET hSession = InternetOpen("App", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
        if (hSession != NULL)
        {
            HINTERNET hConnect = InternetConnect(hSession, site, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
            if (hConnect != NULL)
            {
                if (type == RequestType::GET)
                    sprintf(fileAndMessage, "%s?%s", file, message);
                HINTERNET hRequest = HttpOpenRequest(hConnect, (type == RequestType::POST ? "POST" : "GET"), (type == RequestType::POST ? file : fileAndMessage), NULL, NULL, 0, 0, 1);
                if (hRequest != NULL)
                { 
                    LPCSTR header;
                    header = "Accept: */*";
                    HttpAddRequestHeaders(hRequest, header, strlen(header), HTTP_ADDREQ_FLAG_ADD);
                    header = "Content-Type: application/x-www-form-urlencoded";
                    HttpAddRequestHeaders(hRequest, header, strlen(header), HTTP_ADDREQ_FLAG_ADD);
                    if (HttpSendRequest(hRequest, NULL, 0, (type == RequestType::POST ? message : NULL), (type == RequestType::POST ? strlen(message) : NULL)))
                    {
                        if (InternetReadFile(hRequest, szBuffer, sizeof(szBuffer), &size))
                            return szBuffer;
                    }
                }
                InternetCloseHandle(hRequest);
            }
            InternetCloseHandle(hConnect);
        }
        InternetCloseHandle(hSession);
        return FALSE;
    }
    
     
  4. Лисёнок

    Лисёнок Новичок

    Регистрация:
    8 сен 2018
    Сообщения:
    4
    Симпатии:
    8
    ООП головного мозга
     
    DarkP1xel и Rinat_Namazov нравится это.