Данный код к сожалению не работает, в чём проблема ?
wstring postRequest(wstring url, wstring path, file data) {
HINTERNET hInternet, hConnect, hRequest;
hInternet = InternetOpenW(L"TERNICK OWL", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (hInternet != NULL) {
hConnect = InternetConnectW(hInternet, url.data(), INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1u);
if (hConnect != NULL) {
hRequest = HttpOpenRequestW(hConnect, L"POST", path.data(), NULL, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD, 1);
if (hRequest != NULL) {
HttpAddRequestHeaders(hRequest, hdrs, -1, HTTP_ADDREQ_FLAG_REPLACE | HTTP_ADDREQ_FLAG_ADD);
INTERNET_BUFFERS bufferIn;
memset(&bufferIn, 0, sizeof(INTERNET_BUFFERS));
bufferIn.dwStructSize = sizeof(INTERNET_BUFFERS);
bufferIn.dwBufferTotal = wcslen(head) + data.l + wcslen(tail);
BOOL bSend = HttpSendRequestExW(hRequest, &bufferIn, NULL, HSR_INITIATE, 0);
if (bSend) {
LPDWORD written = 0;
InternetWriteFile(hRequest, head, wcslen(head), written);
InternetWriteFile(hRequest, data.data, data.l, written);
InternetWriteFile(hRequest, tail, wcslen(tail), written);
HttpEndRequest(hRequest, NULL, HSR_INITIATE, 0);
}
if (bSend) {
DWORD dwSize = 0;
wstring result;
wchar_t *buff = new wchar_t[256];
do
{
memset(buff, 0, 256);
InternetReadFile(hRequest, buff, sizeof(buff) - 1, &dwSize);
result.append(buff, dwSize);
} while (dwSize != 0);
delete[] buff;
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
InternetCloseHandle(hInternet);
return result;
}
else {
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
InternetCloseHandle(hInternet);
}
}
else {
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
InternetCloseHandle(hInternet);
}
}
else {
InternetCloseHandle(hConnect);
InternetCloseHandle(hInternet);
}
}
else {
InternetCloseHandle(hInternet);
}
return L"";
}