vs2010 实现访问http服务器
时间: 2023-10-30 16:05:34 浏览: 34
可以使用 WinINet 库来实现访问 HTTP 服务器。下面是一个简单的示例代码:
```c++
#include <windows.h>
#include <wininet.h>
#include <iostream>
#pragma comment(lib, "wininet.lib")
int main() {
HINTERNET hInternet = InternetOpenA("MyApp", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (!hInternet) {
std::cerr << "InternetOpen failed: " << GetLastError() << std::endl;
return 1;
}
HINTERNET hConnection = InternetConnectA(hInternet, "www.example.com", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
if (!hConnection) {
std::cerr << "InternetConnect failed: " << GetLastError() << std::endl;
InternetCloseHandle(hInternet);
return 1;
}
HINTERNET hRequest = HttpOpenRequestA(hConnection, "GET", "/", NULL, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
if (!hRequest) {
std::cerr << "HttpOpenRequest failed: " << GetLastError() << std::endl;
InternetCloseHandle(hConnection);
InternetCloseHandle(hInternet);
return 1;
}
if (!HttpSendRequestA(hRequest, NULL, 0, NULL, 0)) {
std::cerr << "HttpSendRequest failed: " << GetLastError() << std::endl;
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnection);
InternetCloseHandle(hInternet);
return 1;
}
char buffer[1024];
DWORD bytesRead;
while (InternetReadFile(hRequest, buffer, sizeof(buffer), &bytesRead) && bytesRead > 0) {
std::cout << std::string(buffer, bytesRead);
}
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnection);
InternetCloseHandle(hInternet);
return 0;
}
```
这个示例代码使用 WinINet 库来访问 www.example.com 的根目录。首先使用 `InternetOpen` 函数打开一个句柄,然后使用 `InternetConnect` 函数连接到服务器,接着使用 `HttpOpenRequest` 函数创建一个 HTTP 请求,使用 `HttpSendRequest` 函数发送请求,最后使用 `InternetReadFile` 函数读取响应内容。