• XSS.stack #1 – первый литературный журнал от юзеров форума

(C) Ошибка при отправке HTTP-TLS GET

acc2ss

(L3) cache
Пользователь
Регистрация
26.08.2023
Сообщения
161
Реакции
222
Гарант сделки
2
Депозит
0.00
Я пишу скрипт на C
Пытаюсь отправить HTTP-TLS GET запрос к своему дстату
Конект проходит
GET запрос нет

Если кто-то может помочь, отпишите в лс форума.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я пишу скрипт на C
Пытаюсь отправить HTTP-TLS GET запрос к своему дстату
Конект проходит
GET запрос нет

Если кто-то может помочь, отпишите в лс форума.

Отправь исходный код, помогу
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я пишу скрипт на C
Пытаюсь отправить HTTP-TLS GET запрос к своему дстату
Конект проходит
GET запрос нет

Если кто-то может помочь, отпишите в лс форума.
First post the code to help you , second what are you using Winsock or wininet

I recommend you use Wininet to use HTTPS and HTTP beacuse Winsock will required from you to handle every thing and implement the tls by your self
 
Какой библиотекой пишешь, под какую ос? Вижу тут постоянно люди спотыкаются об WinInet, поэтому вот готовая прога, которая скачивает страницу гугл ньюс и печатает в консоль, думаю многим бы пригодилось:

Код:
#include <windows.h>
#include <wininet.h>
#include <iostream>

#pragma comment(lib, "wininet.lib")

int main()
{
    HINTERNET hInternet = InternetOpen(L"WinInet Example/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    if (!hInternet)
    {
        std::cerr << "Error: InternetOpen failed." << std::endl;
        return 1;
    }

    HINTERNET hConnection = InternetConnect(hInternet, L"news.google.com", INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
    if (!hConnection)
    {
        std::cerr << "Error: InternetConnect failed." << std::endl;
        InternetCloseHandle(hInternet);
        return 1;
    }
    HINTERNET hRequest = HttpOpenRequest(hConnection, L"GET", L"/", NULL, NULL, NULL,
        INTERNET_FLAG_SECURE | INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID |
        INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_PRAGMA_NOCACHE |
        INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_RESYNCHRONIZE, 0);

    if (!hRequest)
    {
        std::cerr << "Error: HttpOpenRequest failed." << std::endl;
        InternetCloseHandle(hConnection);
        InternetCloseHandle(hInternet);
        return 1;
    }

    if (!HttpSendRequest(hRequest, NULL, 0, NULL, 0))
    {
        std::cerr << "Error: HttpSendRequest failed." << std::endl;
        InternetCloseHandle(hRequest);
        InternetCloseHandle(hConnection);
        InternetCloseHandle(hInternet);
        return 1;
    }

    DWORD dwSize = 0;
    do
    {
        if (!InternetQueryDataAvailable(hRequest, &dwSize, 0, 0))
        {
            std::cerr << "Error: InternetQueryDataAvailable failed." << std::endl;
            InternetCloseHandle(hRequest);
            InternetCloseHandle(hConnection);
            InternetCloseHandle(hInternet);
            return 1;
        }

        char* pszOutBuffer = new char[dwSize + 1];
        DWORD dwDownloaded = 0;

        if (!InternetReadFile(hRequest, (LPVOID)pszOutBuffer, dwSize, &dwDownloaded))
        {
            std::cerr << "Error: InternetReadFile failed." << std::endl;
            delete[] pszOutBuffer;
            InternetCloseHandle(hRequest);
            InternetCloseHandle(hConnection);
            InternetCloseHandle(hInternet);
            return 1;
        }

        pszOutBuffer[dwDownloaded] = '\0';
        std::cout << pszOutBuffer;

        delete[] pszOutBuffer;

    } while (dwSize > 0);

    InternetCloseHandle(hRequest);
    InternetCloseHandle(hConnection);
    InternetCloseHandle(hInternet);

    return 0;
}
Написана целиком и полностью с помощью бинг чата, я исправил буквально 1 строку. Более универсально было бы использовать либкурл, но те кто это понимает думаю и сами себе напишут.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх