2010-03-25 129 views
2

我会说得很对。winHTTP GET请求C++

有什么我可以得到winHTTP请求是相同的forma吨作为常规吗? 我使用VC++ 2008,如果这有什么差别

+0

我不知道答案,但我很好奇你为什么希望这样? – SteelBytes 2010-03-25 01:25:14

+0

由于您应该在一个单独的行中发送主机:site.com,并且只发送GET中的路径?事实上,在阅读RFC后,它说如果网站在GET URI主机中声明:应该被忽略。 – jpyllman 2010-03-25 02:54:37

+1

你能发表一些代码吗? – 2010-03-25 03:29:38

回答

4

您的代码应该是这样的:

// Specify an HTTP server. 
if (hSession) 
    hConnect = WinHttpConnect(hSession, L"www.example.com", 
           INTERNET_DEFAULT_HTTP_PORT, 0); 

// Create an HTTP request handle. 
if (hConnect) 
    hRequest = WinHttpOpenRequest(hConnect, L"GET", L"/path/resource.html", 
            NULL, WINHTTP_NO_REFERER, 
            WINHTTP_DEFAULT_ACCEPT_TYPES, 
            WINHTTP_FLAG_SECURE); 

// Send a request. 
if (hRequest) 
    bResults = WinHttpSendRequest(hRequest, 
            WINHTTP_NO_ADDITIONAL_HEADERS, 
            0, WINHTTP_NO_REQUEST_DATA, 0, 
            0, 0); 

您可以发布在代码中这三个电话?

请注意,完整的URL分成两部分 - 主机名称在WinHttpConnect调用中指定,但在WinHttpOpenRequest调用中指定了相对资源路径(作为参数pwszObjectName)。根据您的评论,您似乎指定了WinHttpConnect调用中的完整网址。