社区
HTML/XML
帖子详情
请问CInternetSession::OpenURL 和 CInternetSession::GetHttpConnection 有什么不同?
haluo
2003-12-10 03:41:05
谢谢!
...全文
261
8
打赏
收藏
请问CInternetSession::OpenURL 和 CInternetSession::GetHttpConnection 有什么不同?
谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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的网络助手连接
3. 建立
HTTP
连接:使用
CIn
ternet
Session
的
Open
URL
()或Get
Http
Connection
()方法,指定目标
URL
来创建C
Http
Connection
对象。 4. 发送
HTTP
请求:通过C
Http
Connection
的ExecuteRequest()方法,可以发送GET或POST请求。 ...
MFC调用
HTTP
接口,获取数据(天气数据Demo)
C
Http
Connection
* p
Http
Conn =
session
.Get
Http
Connection
(locator); C
Http
File* p
Http
File = p
Http
Conn->
Open
Request(C
Http
Connection
::
HTTP
_VERB_GET, "/data/2.5/weather?q=Beijing", NULL, 1, NULL, ...
CIn
ternet
Session
Open
URL
没反应,不能捕获异常
CIn
ternet
Session
Open
URL
没反应,不能捕获异常
用WinInet开发In
ternet
客户端应用指南
为了与服务器进行通讯,除了要创建
CIn
ternet
Session
对象之外,还必须创建
CIn
ternet
Connection
对象,针对
不同
的协议,
CIn
ternet
Connection
对象有三种类型:
CIn
ternet
Session
::GetFtp
Connection
...
CIn
ternet
Session
的简单使用
CIn
ternet
Session
使用类
CIn
ternet
Session
创建并初始化一个或多个同时的In
ternet
会话。如果需要,还可描述与代理服务器的连接。如果In
ternet
连接必须在应用过程中保持着,可创建一个类CWinApp的...
HTML/XML
3,055
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章