在 Win32 平台下使用 Wininet 库发送 HTTP 请求,可以通过设置 INTERNET_OPTION_PROXY 中的选项来使用代理。以下是示例代码:
// 打开 Internet Session
HINTERNET hInternet = InternetOpen("MyApp", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hInternet == NULL) {
printf("InternetOpen failed, error %ld\n", GetLastError());
return 0;
}
// 设置代理选项
INTERNET_PROXY_INFO proxyInfo = {0};
proxyInfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
proxyInfo.lpszProxy = "http://ip:port"; // 这里设置代理 IP 和端口
proxyInfo.lpszProxyBypass = "<local>";
if (!InternetSetOption(hInternet, INTERNET_OPTION_PROXY, &proxyInfo, sizeof(proxyInfo))) {
printf("InternetSetOption(INTERNET_OPTION_PROXY) failed, error %ld\n", GetLastError());
InternetCloseHandle(hInternet);
return 0;
}
// 打开 HTTP Session
HINTERNET hHttpSession = InternetConnect(hInternet, "www.example.com", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
if (hHttpSess