SAMPFUNCS | как оформить пост запрос

user337567

Участник
Автор темы
91
10
как оформить пост запрос? я умею только вкид оформлять
 

barspinoff

Известный
126
33
C++:
#include <Windows.h>
#include <WinInet.h>

#pragma comment(lib, "wininet")

struct post_input_t
{
    PCHAR pszAgent;
    PCHAR pszDomain;
    PCHAR pszObject;
    PCHAR pszHeaders;
    PCHAR pszPostArgs;
};

DWORD WI_Post(post_input_t postData, PCHAR pszBuffer, DWORD dwBufSize)
{
    PCCH lpAcceptBytes[] = { "*/*", NULL };
    DWORD dwRead;
    HINTERNET hInet = InternetOpenA(postData.pszAgent, 0, 0, 0, 0);
    HINTERNET hSession = InternetConnectA(hInet, postData.pszDomain, INTERNET_DEFAULT_HTTP_PORT, 0, 0, INTERNET_SERVICE_HTTP, 0, 1);
    HINTERNET hRequest = HttpOpenRequestA(hSession, "POST", postData.pszObject, NULL, postData.pszDomain, lpAcceptBytes, 0, 1);
    HttpSendRequestA(hRequest, postData.pszHeaders, strlen(postData.pszHeaders), postData.pszPostArgs, strlen(postData.pszPostArgs));
    InternetReadFile(hRequest, pszBuffer, dwBufSize, &dwRead);
    pszBuffer[dwRead] = 0;
    InternetCloseHandle(hRequest);
    InternetCloseHandle(hSession);
    InternetCloseHandle(hInet);
    return dwRead;
}

int main(int argc, char *argv[])
{
    post_input_t inp;
    inp.pszAgent = "Агент СБУ";
    inp.pszDomain = "google.com";
    inp.pszObject = "/search";
    inp.pszHeaders = "Content-Type: application/x-www-form-urlencoded\r\n";
    inp.pszPostArgs = "q=123";

    char szRespBuffer[16384];
    DWORD read = WI_Post(inp, szRespBuffer, sizeof(szRespBuffer));
    printf("length %d | data %s\r\n", read, szRespBuffer);

    return 0;
}