社区
HTML/XML
帖子详情
请问CInternetSession::OpenURL 和 CInternetSession::GetHttpConnection 有什么不同?
haluo
2003-12-10 03:41:05
谢谢!
...全文
274
8
打赏
收藏
请问CInternetSession::OpenURL 和 CInternetSession::GetHttpConnection 有什么不同?
谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangbc
2004-01-05
打赏
举报
回复
up
yangbc
2004-01-05
打赏
举报
回复
up
yangbc
2004-01-05
打赏
举报
回复
up
haluo
2003-12-10
打赏
举报
回复
多谢你,老刘。
对于您第三篇的回复中:
CInternetSession session;
CHttpConnection* pConnection =
session.GetHttpConnection(_T("ServerNameHere"));
CHttpFile* pFile =
pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,
_T("FormActionHere"));
"ServerNameHere" 和 "FormActionHere" 该怎么写?
譬如我想实现以下表单提交,该怎么具体实现:
<form name=f action=http://www1.baidu.com/baidu>
<input type=hidden name=cl value=3>
<input type=hidden name=tn value=baidu>
<input type=text name=word class=ff size=35>
<input type=submit value=百度搜索 name="submit">
</form>
谢谢!
laolaoliu2002
2003-12-10
打赏
举报
回复
可以通过WinInet类与Internet服务器建立连接、查询或接收文件,也可向服务器发送文件。使用WinInet类CInternetSession的对象,如果用协议HTTP、FTP或Gopher资源地址,URL (Uniform Resource Locator)可不必连接服务器,直接调用成员函数OpenURL()来得到一个只读的资源文件(CInternetFile),然后用CStdioFile类的成员函数去处理这些数据。如果想对服务器的内容进行更多的处理,可用CInternetConnection类的函数Get Ftp Connection ()、GetGopherConnection() 或GetHttpConnection()来实现每一种协议的连接处理,从中可见MFC类网络编程的强大功能。
laolaoliu2002
2003-12-10
打赏
举报
回复
CString strHeaders =
_T("Content-Type: application/x-www-form-urlencoded");
// URL-encoded form variables -
// name = "John Doe", userid = "hithere", other = "P&Q"
CString strFormData = _T("name=John+Doe&userid=hithere&other=P%26Q");
CInternetSession session;
CHttpConnection* pConnection =
session.GetHttpConnection(_T("ServerNameHere"));
CHttpFile* pFile =
pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,
_T("FormActionHere"));
BOOL result = pFile->SendRequest(strHeaders,
(LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
laolaoliu2002
2003-12-10
打赏
举报
回复
void CSp_14Dlg::GetURL(void)
{
UpdateData();
CInternetSession sess;//建立会话
CHttpFile* pF=(CHttpFile*)sess.OpenURL(m_szURL);//打开文件
CString szData,szAllData;
while(pF->ReadString(szData))
{//读取文件
szAllData+="\r\n";
szAllData+=szData;
}
pF->Close();
sess.Close();
m_szHTML=szAllData;
UpdateData(FALSE);
}
laolaoliu2002
2003-12-10
打赏
举报
回复
在建立会话后就可以利用CInternetSession::OpenURL打开一个URL,并读取数据,函数原型为:
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 使用二进制数据
OpenURL的返回值为CStdioFile文件指针,函数会根据使用的协议返回不同的文件类指针,但这些类都是CStdioFile的派生类。
MFC的网络助手连接
网络连接
MFC调用
HTTP
接口,获取数据(天气数据Demo)
MFC调用
HTTP
接口,获取数据(天气数据Demo)
CIn
ternet
Session
Open
URL
没反应,不能捕获异常
CIn
ternet
Session
Open
URL
没反应,不能捕获异常
用WinInet开发In
ternet
客户端应用指南
导读: 一、概述 一个In
ternet
客户端程序的目的是通过In
ternet
协议如:
HTTP
、FTP等来存取网络数据源(服务器)的信息。客户端程序可以访问服务器获得象天气预报,股票价格、重要新闻数据,甚至是与服务器交换信息。In
ternet
客户端程序可以通过外部网络(In
ternet
)或内部网络(一般为Intranet)访问服务器。 为了开发In
ternet
客户端程序。MFC类
CIn
ternet
Session
的简单使用
CIn
ternet
Session
使用类
CIn
ternet
Session
创建并初始化一个或多个同时的In
ternet
会话。如果需要,还可描述与代理服务器的连接。如果In
ternet
连接必须在应用过程中保持着,可创建一个类CWinApp的
CIn
ternet
Session
成员。一旦已建立起In
ternet
会话,就可调用
Open
URL
。
CIn
ternet
Session
会通过调用全局函数AfxParse
URL
来为分析映射
URL
。无论协议类型如何,
CIn
ternet
Session
解释
HTML/XML
3,056
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章