InternetSetOption 如何在MFC中实现代理

帝国队长 2011-03-23 12:54:37
比如有个学校内部有个图书馆,并建立了一个资源网站,我通过外网无法访问,所以只有通过代理才能从外网访问,
我要如何设置InternetSetOption 才能访问呀,比如地址是www.xxx.com 端口是8080;
然后通过
m_Brow.Navigate(L"http://www.tushuguan.com", NULL, NULL, NULL, NULL);
访问呢?
连接后还有个服务器的用户名和密码,都是123 要如何做呀

高手们,指教下呀,谢谢了!
...全文
459 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
终于可以了,真是谢谢了,特别是uangcheng90搞了这么久,虽然,不知道我这有什么问题,用你的就不行,但还是谢谢了!
kuba120 2011-03-23
  • 打赏
  • 举报
回复
我把代码发你邮箱了,你看下行不行,我用的也不是IP
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 huangcheng90 的回复:]

http://msdn.microsoft.com/zh-cn/library/aa385114.aspx
http://support.microsoft.com/kb/226473
[/Quote]
大哥,你看看你能打开我给的地址不,要不你给我个代理和网页地址,我试试打得开不
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
打不开
Dreadnought 2011-03-23
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/aa385114.aspx
http://support.microsoft.com/kb/226473
帝国队长 2011-03-23
  • 打赏
  • 举报
回复


void Ctest9Dlg::OnBnClickedButton1()
{
SetProxySvr(L"ADSL",L"proxy.pku.edu.cn:8080",PROXY_TYPE_PROXY);
m_Brow.Navigate(L"http://f.g.wanfangdata.com.cn/Fulltext.ashx?fileId=Periodical_dszl200311003", NULL, NULL, NULL, NULL);
}

void SetProxySvr(LPWSTR lpwzConnection,LPWSTR lpwzSever,DWORD dwConnectionType)
{

INTERNET_PER_CONN_OPTION_LIST List;
INTERNET_PER_CONN_OPTION Option[2];
unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);

//Option[0].dwOption = INTERNET_PER_CONN_AUTOCONFIG_URL;
//Option[1].dwOption = INTERNET_PER_CONN_AUTODISCOVERY_FLAGS;
Option[1].dwOption = INTERNET_PER_CONN_FLAGS;
Option[1].Value.dwValue = dwConnectionType;
//Option[3].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
Option[0].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
Option[0].Value.pszValue=lpwzSever;
List.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
List.pszConnection = lpwzConnection;
List.dwOptionCount = 2;
List.dwOptionError = 0;
List.pOptions = Option;
if (!InternetSetOption(NULL,INTERNET_OPTION_PER_CONNECTION_OPTION,&List,nSize))
{
MessageBox(NULL,L"设置代理失败",L"错误",MB_ICONERROR);
}
/*if(!InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, &nSize))
printf("InternetQueryOption failed! (%d)\n", GetLastError());
if(Option[0].Value.pszValue != NULL)
MessageBox(Option[0].Value.pszValue);*/
//if (Option[0].Value.pszValue!=NULL)
//{
//GlobalFree(Option[0].Value.pszValue);
//}

}



帝国队长 2011-03-23
  • 打赏
  • 举报
回复
没有变,还是白板
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
我在IE中设置proxy.pku.edu.cn:8080就能进到弹出输入代理密码
但程序就是进不到这步,是不是和我改了你的INTERNET_PER_CONN_FLAGS_UI有关呀
我改为了NTERNET_PER_CONN_FLAGS
Dreadnought 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 devilkillzzz 的回复:]

5555555555555
大侠,还是没反应呀。。。。。。
[/Quote]
你看看IE里面的设置,改变了没有... 第一个参数是你在IE的Internet选项---连接里面看到的那个名称.
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
5555555555555
大侠,还是没反应呀。。。。。。
Dreadnought 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 devilkillzzz 的回复:]

proxy.pku.edu.cn:8080
http://f.g.wanfangdata.com.cn/Fulltext.ashx?fileId=Periodical_dszl200311003

你在IE中设置代理能打开,但在程序中就是不行,
我不知道我是什么上网方式,我设置的就是
SetProxySvr(L"ADSL",L"proxy.pku.edu.cn:8080",PROXY……
[/Quote]
你后面两个参数怎么能同时设置?
PROXY_TYPE_PROXY这个是使用代理访问网络
|PROXY_TYPE_DIRECT这个是直接连接网络,既不使用代理
改成这样
SetProxySvr(L"ADSL",L"proxy.pku.edu.cn:8080",PROXY_TYPE_PROXY);
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
proxy.pku.edu.cn:8080
http://f.g.wanfangdata.com.cn/Fulltext.ashx?fileId=Periodical_dszl200311003

你在IE中设置代理能打开,但在程序中就是不行,
我不知道我是什么上网方式,我设置的就是
SetProxySvr(L"ADSL",L"proxy.pku.edu.cn:8080",PROXY_TYPE_PROXY | PROXY_TYPE_DIRECT);
你看看你能打开不能
不有INTERNET_PER_CONN_FLAGS_UI我在2008下不对
我改为了INTERNET_PER_CONN_FLAGS
应该没有问题吧?
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
不知道为什么没有反应呀,是应为我用的是网址而不是IP吗?网址是不是在前边要加http://呀?
Dreadnought 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 devilkillzzz 的回复:]

邮件呢。。。。。
[/Quote]
已发送....
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
邮件呢。。。。。
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
zrfzle@126.com
Dreadnought 2011-03-23
  • 打赏
  • 举报
回复
把你邮箱留下来,我把代码发给你
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 devilkillzzz 的回复:]

引用 2 楼 huangcheng90 的回复:

http://topic.csdn.net/u/20110322/13/e625e4bf-0d68-4ad4-9aa8-4355dbbc618a.html
参考1楼,前几天刚回答过

void CProxySwitcherDlg::SetProxySvr(LPWSTR lpwzConnection,LPWSTR lpwzSever,D……
[/Quote]
不行呀,为什么边不上呢,
SetProxySvr(L"ADSL",L"proxy.pku.edu.cn:8080",PROXY_TYPE_PROXY | PROXY_TYPE_DIRECT);
帝国队长 2011-03-23
  • 打赏
  • 举报
回复
哦,那大哥,你知道如何给有用户名和密码的代理在里边添加用户名和密码吗?
加载更多回复(4)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧