对友好URL的POST请求失败

时间:2012-09-02 02:34:06

标签: c++ winapi wininet

我正在尝试将HTTP请求发布到可通过友好URL地址访问的HTML表单 但是当我发布它时,库会返回错误代码“提供的错误URL”。

HINTERNET hRequest = HttpOpenRequest(hConn, L"POST", L"newform",
                     NULL, L"http://www.example.com/add/newform/",
                     rgpszAcceptTypes, NULL, NULL);
DWORD error_code   = GetLastError();
bool hResult       = HttpSendRequestW(hRequest,NULL,NULL,NULL,NULL);
error_code         = GetLastError(); //12005 - bad URL provided  

我做错了什么,为什么我的请求失败了?

1 个答案:

答案 0 :(得分:2)

必须在对InternetConnect的调用中指定服务器名称(上例中的www.site.com),协议(INTERNET_SERVICE_HTTP)也必须指定。

在对HttpOpenRequest的调用中,您只提供“对象”的名称,在本例中为“/ add / newform /".

例如(为了更加清晰而添加):

HINTERNET hConn = InternetConnect(hInternet, L"www.site.com", INTERNET_DEFAULT_HTTP_PORT,
    NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
HINTERNET hRequest = HttpOpenRequest(hConn, L"POST", L"/add/newform", NULL, NULL,
    rgpszAcceptTypes, NULL, NULL);