HttpSendRequest未发布正确

时间:2014-08-01 13:39:40

标签: c++ winapi wininet

我正在使用WinInet向apache Web服务器发出一个简单的POST请求。我使用base 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);
}

1 个答案:

答案 0 :(得分:4)

从W3

  

"在查询字符串中,加号保留为速记   空间符号:

来源:" http://www.w3.org/Addressing/URL/4_URI_Recommentations.html"