Пожалуйста, обратите внимание, что пользователь заблокирован
В общем-то, написал простенький код для отправки http/https запросов:
Судя по доке - чтобы отправить https запрос достаточно добавить флаг INTERNET_FLAG_SECURE в HttpOpenRequestW, но даже если добавить этот флаг - запрос шлётся по http. В чём может быть проблема?
C:
HTTP::Resp* HTTP::SendReq(LPWSTR type, LPWSTR domain, DWORD port, LPWSTR path, Buffer* data)
{
BOOL bSuccess = TRUE;
HINTERNET hInternet = nullptr, hConnect = nullptr, hRequest = nullptr;
DWORD timeOut = HTTP_TIMEOUT_SEC * 10000;
Resp* resp = nullptr;
DWORD flag = INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_PRAGMA_NOCACHE;
if (port == INTERNET_DEFAULT_HTTPS_PORT)
flag |= INTERNET_FLAG_SECURE | INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID |
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS;
do
{
hInternet = InternetOpenW(HTTP_USERAGENT, INTERNET_OPEN_TYPE_PRECONFIG, nullptr, nullptr, 0);
if (!(bSuccess = (hInternet != nullptr))) break;
InternetSetOptionW(hInternet, INTERNET_OPTION_SEND_TIMEOUT, &timeOut, sizeof(timeOut));
InternetSetOptionW(hInternet, INTERNET_OPTION_RECEIVE_TIMEOUT, &timeOut, sizeof(timeOut));
InternetSetOptionW(hInternet, INTERNET_OPTION_CONNECT_TIMEOUT, &timeOut, sizeof(timeOut));
hConnect = InternetConnectW(hInternet, domain, port, nullptr, nullptr, INTERNET_SERVICE_HTTP, 0, 0);
if (!(bSuccess = (hConnect != nullptr))) break;
hRequest = HttpOpenRequestW(hConnect, type, path, nullptr, nullptr, 0, flag, 0);
if (!(bSuccess = (hRequest != nullptr))) break;
if (!(bSuccess = HttpSendRequestW(hRequest, nullptr, 0, (LPVOID)data->data, data->size))) break;
resp = (Resp*)Mem::Alloc(sizeof(Resp));
if (!(bSuccess = (resp != nullptr))) break;
resp->data = (BYTE*)Mem::Alloc(1);
if (!(bSuccess = (resp->data != nullptr))) break;
resp->code = GetStatusCode(hRequest);
resp->size = 0;
BYTE tempBuff[2048] = { 0 };
DWORD dwRead;
while (InternetReadFile(hRequest, tempBuff, 2048, &dwRead) && dwRead)
{
resp->data = (BYTE*)Mem::Realloc(resp->data, resp->size + dwRead);
Mem::Copy(resp->data + resp->size, tempBuff, dwRead);
resp->size += dwRead;
}
} while (FALSE);
if (hInternet) InternetCloseHandle(hInternet);
if (hConnect) InternetCloseHandle(hConnect);
if (hRequest) InternetCloseHandle(hRequest);
if (!bSuccess)
{
if (resp->data) Mem::Free(resp->data);
Mem::Free(resp);
return nullptr;
}
return resp;
}