﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-丫丫de CPP</title><link>http://www.cppblog.com/dyaya/</link><description>vc mfc</description><language>zh-cn</language><lastBuildDate>Fri, 10 Apr 2026 22:59:33 GMT</lastBuildDate><pubDate>Fri, 10 Apr 2026 22:59:33 GMT</pubDate><ttl>60</ttl><item><title>利用MFC的CInternetSession下载网页</title><link>http://www.cppblog.com/dyaya/archive/2008/10/28/65359.html</link><dc:creator>丫丫de CPP</dc:creator><author>丫丫de CPP</author><pubDate>Tue, 28 Oct 2008 11:18:00 GMT</pubDate><guid>http://www.cppblog.com/dyaya/archive/2008/10/28/65359.html</guid><wfw:comment>http://www.cppblog.com/dyaya/comments/65359.html</wfw:comment><comments>http://www.cppblog.com/dyaya/archive/2008/10/28/65359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/dyaya/comments/commentRss/65359.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/dyaya/services/trackbacks/65359.html</trackback:ping><description><![CDATA[新人第一篇呵呵 抄的CSDN的一篇文章<img height=20 src="http://www.cppblog.com/Emoticons/QQ/14.gif" width=20 border=0>&nbsp;不要笑，才开始学MFC，以后技术会好起来的<br>MFC库的CInternetSession 给我们开发网络程序带来了极大的方便，下面是自己收藏的代码与大家分享 <br>但是CInternetSession有个缺点就是线程多了就报错，但是作为一般应用就足够了。 <br>　　 <br>　　CString StrHtml= " "; //下载网页后存放的字符串变量 <br>　　CInternetFile* interFile = NULL; //定义CInternetFile对象 <br>　　CInternetSession* MySession=new CInternetSession( "xxxxx ",NULL); <br>　　/* <br>　　网络连接请求时间超时值在数毫秒级。如果连接请求时间超过这个超时值，请求将被取消。 <br>　　缺省的超时值是无限的。 <br>　　*/ <br>　　MySession-&gt; SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,6000); <br>　　MySession-&gt; SetOption(INTERNET_OPTION_SEND_TIMEOUT,60000); <br>　　MySession-&gt; SetOption(INTERNET_OPTION_RECEIVE_TIMEOUT,60000); <br>　　/* 在重试连接之间的等待的延时值在毫秒级。*/ <br>　　MySession-&gt; SetOption(INTERNET_OPTION_CONNECT_BACKOFF,500); <br>　　/* 在网络连接请求时的重试次数。如果一个连接企图在指定的重试次数后仍失败，则请求被取消。 缺省值为5。*/ 以下载<a href="http://qq.fxsou.com/" target=_blank><u><font color=#800080>QQ空间歌曲</font></u></a>为例<br>CString DownURL="<a title=http://qq.fxsou.com href="http://qq.fxsou.com/" target=_blank><u><font color=#800080>http://qq.fxsou.com</font></u></a>"; <br>　　MySession-&gt; SetOption(INTERNET_OPTION_CONNECT_RETRIES, 2); <br>　　try <br>　　{ <br>　　 interFile=(CInternetFile*)MySession-&gt; OpenURL(DownURL); //关键 <br>　　} <br>　　catch(CException *ex) <br>　　{ <br>　　 interFile = NULL; <br>　　 // pEx-&gt; Delete(); <br>　　} <br>　　try <br>　　{ <br>　　if (interFile) <br>　　{ <br>　　 <br>　　if(interFile-&gt; GetLength() &lt;2) return " "; <br>　 } <br>　　else <br>　　{ <br>　　return " "; <br>　　} <br>　　//返回状态 <br>　　 DWORD dwStatusCode; <br>　　if( ((CHttpFile *)interFile)-&gt; QueryInfoStatusCode(dwStatusCode)) <br>　　{ <br>　　if(dwStatusCode==400) <br>　　{ <br>　　//AfxMessageBox( "400 "); <br>　　return " "; <br>　　} <br>　　} <br>　　else <br>　　{ <br>　　return " "; <br>　　} <br>　　 <br>　　 <br>　　CString StrLine; <br>　　long Num_Line=1; <br>　　while (interFile-&gt; ReadString(StrLine)!=NULL) <br>　　{ <br>　　 <br>　　 if(Num_Line % 300) Sleep(1); <br>　　 StrHtml += StrLine + "\r\n "; //换行处理 <br>　　 Num_Line=Num_Line+1; <br>　　} <br>　　} <br>　　 <br>　　else <br>　　{ <br>　　return " "; <br>　　} <br>　　 <br>　　} <br>　　 catch(CException *ex) <br>　　{ <br>　　} <br>　　 interFile-&gt; Close(); <br>　　 delete interFile; <br>　　 <br>　　return StrHtml; //返回下载网页的结果 <br>
<img src ="http://www.cppblog.com/dyaya/aggbug/65359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dyaya/" target="_blank">丫丫de CPP</a> 2008-10-28 19:18 <a href="http://www.cppblog.com/dyaya/archive/2008/10/28/65359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>