Правя проста POST заявка с помощта на WinInet към apache уеб сървър. Кодирам данните, като използвам база 64. Проблемът е, че всеки знак + се заменя със знак за интервал.
Защо е така и как мога да направя правилна POST заявка.
hInternet = InternetOpen(NULL, INTERNETOPENTYPEPRECONFIG, NULL, NULL, 0);
if (hInternet)
{
hConnect = InternetConnect(hInternet, szDomain, INTERNETDEFAULTHTTPPORT, NULL, NULL, INTERNETSERVICEHTTP, 0, dwTmp);
if (hConnect)
{
hRequest = HttpOpenRequest(hConnect, szPost, szExfiltrationURL, NULL, NULL,(char *)accept, INTERNETFLAGNOCACHEWRITE | INTERNETFLAGNOCOOKIES | INTERNETFLAGNOUI | INTERNETFLAGRELOAD, 0);
if (hRequest)
{
HttpSendRequest(hRequest, headers, lstrlen(headers), buffer, buflen);
InternetCloseHandle(hRequest);
}
InternetCloseHandle(hConnect);
}
InternetCloseHandle(hInternet);
}
POST
тяло може да съдържа некодирани двоични данни. И вPOST
заявка вашите данни трябва да са в тялото, а не в URL адреса. - person Remy Lebeau   schedule 01.08.2014