您的位置:新闻资讯 >文章内容
如何使用WinINet库访问HTTP代理服务器?
来源:互联网 作者:admin 时间:2019-09-06 15:40:29

  如何使用WinINet库访问HTTP代理服务器?在用户使用桌面软件的时候,开发者可能会面临各种各样的网络环境。比如,用户可能在家中使用宽带直连到互联网,也可能用户在公司办公,公司因网络安全需要不直接开放外网权限,而是提供HTTP代理的方式为员工提供上网服务。

如何使用WinINet库访问HTTP代理服务器?

  在MFC中,如何向和一台FTP或者HTTP服务器打交道,常用的库是WinINet库。该库提供了提供了一组高层API来封装底层通信协议,如FTP, HTTP等。下面就讲一讲如何使用WinINet库来实现对HTTP代理服务器的访问。

  1) Http代理服务器无需身份验证

  假设公司代理服务器为192.168.1.1,代理端口3128,且无需身份验证,则通过如下代码即可初始化WinINet库并指定WinINet库使用HTTP代理。

  InternetOpen(_T(“Custom user agent”), INTERNET_OPEN_TYPE_PROXY, _T(“http://192.168.1.1:3128”), NULL, 0);

  2) Http代理服务器需要身份验证

  在上述情况1)中的代理服务器如果还需要身份验证的话,则可设定用于访问HTTP代理服务器的用户名和密码,代码如下:

  InternetOpen(_T(“Custom user agent”), INTERNET_OPEN_TYPE_PROXY, _T(“http://192.168.1.1:3128”), NULL, 0);

  InternetSetOption(hInternet, INTERNET_OPTION_PROXY_USERNAME, _T(“UserName”), _tcslen(_T(“UserName”));

  InternetSetOption(hInternet, INTERNET_OPTION_PROXY_PASSWORD, _T(“Password”), _tcslen(_T(“Password”));

  3) 有时为了方便用户,可能会提供”使用浏览器配置”的选项。在这个选项下,无需让用户手动输入代理服务器的各项配置信息,直接采用浏览器(通常是IE)的代理设置,这样用户只需在浏览器中设置是否采用代理就可以了。方法很简单,使用参数INTERNET_OPEN_TYPE_PRECONFIG即可。代码如下:

  InternetOpen(_T(“Custom user agent”), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

  4) 最后一种情况,不使用手动指定HTTP代理,也不使用浏览器设置,直连互联网。使用参数INTERNET_OPEN_TYPE_DIRECT。代码如下:

  InternetOpen(_T(“Custom user agent”), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);

  以上,我们实现了几种不同的接入HTTP服务器的方法。有关WinINet库的详细使用方法请参阅MSDN文档。

  另外,有关INTERNET_OPTION开头的几个选项是实现代理访问的关键,具体含义请直接在MSDN中查询InternetOpen函数的描述。


相关文章内容简介
在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
HTTP代理IP爬虫
客服电话
13318873961