有的东西,明白了就不神秘了-使用 WinInet 进行 SSL 请求
[转:http://support.microsoft.com/kb/168151]
使用 WinInet API 可以建立安全套接字层 (SSL) 或专用通信技术 (PCT) HTTP 会话。安全 HTTP(表示为 HTTPS://)在 TCP 端口 443 上发生。可以使用类似于下面这样的代码来建立 HTTPS 会话:
...
hOpen = InternetOpen (...);
Connect = InternetConnect (
hOpen, // InternetOpen handle
"MyHttpServer", // Server name
INTERNET_DEFAULT_HTTPS_PORT,// Default HTTPS port - 443
"", // User name
"", // User password
INTERNET_SERVICE_HTTP, // Service
0, // Flags
0 // Context
);
hReq = HttpOpenRequest (
hConnect, // InternetConnect handle
"GET", // Method
"", // Object name
HTTP_VERSION, // Version
"", // Referrer
NULL, // Extra headers
INTERNET_FLAG_SECURE, // Flags
0 // Context
);
...
使用 HTTPS 而不是 HTTP 时,请注意两个差异:
InternetConnect 使用 INTERNET_DEFAULT_HTTPS_PORT,而不是 INTERNET_INVALID_PORT_NUMBER 或 INTERNET_DEFAULT_HTTP_PORT
除了所有其他的选项外,HttpOpenRequest 还使用 INTERNET_FLAG_SECURE 选项。
在 HttpOpenRequest 中或在 InternetOpenUrl 中,可以使用以下两个选项以忽略无效的证书错误:
INTERNET_FLAG_IGNORE_CERT_CN_INVALID:忽略因服务器的证书主机名与请求的主机名不匹配所导致的错误。
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID:忽略由已失效的服务器证书导致的错误。
有关这些标志的更多信息,请参阅 Internet Client SDK 文档。
看完后再看看你们收藏的HTTP访问源码,就很容易改成HTTPS了