VC++6.0 通过HTTP方式获取网页
来源:互联网 发布:下载美图软件 编辑:程序博客网 时间:2024/05/04 17:54
项目里面用到了获取网页数据,需要http header 来验证客户端合法性,找了些资料,都有问题。还是自己写吧,用 CInternetSession
//头部包含afxinet.h
#include <afxinet.h>
CInternetSession::OpenURL函数原型为:
CStdioFile* OpenURL( LPCTSTR pstrURL, //文件URL地址
DWORD dwContext = 1, //上下文ID
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII, //标记
LPCTSTR pstrHeaders = NULL, //发送到服务器的数据头
DWORD dwHeadersLength = 0 );//发送到服务器的数据头长度
dwFlags可以为:
INTERNET_FLAG_RELOAD 强制重读数据
INTERNET_FLAG_DONT_CACHE 不保存到缓存
INTERNET_FLAG_TRANSFER_ASCII 使用文本数据
INTERNET_FLAG_TRANSFER_BINARY 使用二进制数据
//获取网页的方法代码如下
CString getURLContext(LPCTSTR pstrURL)
{
//自定义http头信息
char* headers="Accept:*/*/r/n"
"Accept-Language:zh-cn/r/n"
"User-Agent:VCTestClient/r/n";
CString m_strHTML;
try
{
CInternetSession sess;//建立会话
CHttpFile* pF=(CHttpFile*)sess.OpenURL(pstrURL,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers));//打开文件
注意:OpenURL 方法的dwFlags参数 必须选择传输模式为INTERNET_FLAG_TRANSFER_ASCII 或者 INTERNET_FLAG_TRANSFER_BINARY
CString szData,szAllData;
while(pF->ReadString(szData))
{
//读取文件
szAllData+="/r/n";
szAllData+=szData;
}
pF->Close();
sess.Close();
m_strHTML=szAllData;
}
catch(CException *e)
{
AfxMessageBox("获取数据失败");
}
return m_strHTML;
}
希望能对需要的朋友有帮助。
- VC++6.0 通过HTTP方式获取网页
- VC++6.0 通过HTTP方式获取网页
- VC通过HTTP方式获取网页
- 转:VC通过HTTP方式获取网页
- VC通过HTTP方式获取网页
- VC通过HTTP方式获取网页
- VC++通过HTTP方式获取网页源代码
- VC++6.0 通过HTTP方式获取网页 OpenURL
- VC通过HTTP方式获取网页 - 四度专栏 - CSDNBlog
- vc 获取网页内容(HTTP)
- vc 获取网页内容(HTTP)
- VC++获取某个http网页内容
- vc中如何通过http的post方式上传文件
- VC获取网页源码的三种方式
- VC获取网页源码的三种方式
- VC获取网页源码的三种方式
- java 通过http方式获取返回的数据
- 通过HTTP方式获取URL返回结果数据(Java)
- 直销的理论基础一----几何倍增学
- 在ejb中直接利用jdbc读取数据库记录
- 使用Data access block
- WinISO5.3的注册码吧
- Java 数据对象(JDO)介绍(一)
- VC++6.0 通过HTTP方式获取网页
- Java 数据对象(JDO)介绍(二)
- C++入门练习 76题(6)
- Java 数据对象(JDO)介绍(三)
- 使用 Enterprise Library 2 编程取得存储过程的返回值
- 今天开始博客了!
- Java 数据对象(JDO)介绍(四)
- Struts标签
- mysql与JDBC中文问题的解决方法