请问CInternetSession::OpenURL 和 CInternetSession::GetHttpConnection 有什么不同? 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在建立会话后就可以利用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的派生类。 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);} 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()); 可以通过WinInet类与Internet服务器建立连接、查询或接收文件,也可向服务器发送文件。使用WinInet类CInternetSession的对象,如果用协议HTTP、FTP或Gopher资源地址,URL (Uniform Resource Locator)可不必连接服务器,直接调用成员函数OpenURL()来得到一个只读的资源文件(CInternetFile),然后用CStdioFile类的成员函数去处理这些数据。如果想对服务器的内容进行更多的处理,可用CInternetConnection类的函数Get Ftp Connection ()、GetGopherConnection() 或GetHttpConnection()来实现每一种协议的连接处理,从中可见MFC类网络编程的强大功能。 多谢你,老刘。对于您第三篇的回复中: 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>谢谢! 关于字符串操作的问题,求众大牛 vc怎样把列表框中一项添加到另一列表框 数据库里的float类型,读到VC界面里只有0.5变成了.5 LoadResource这个函数的第一个参数如何获得? 请问怎样将PICTURE中的图片保存到一个BMP文件中. 请问如何将文本以语音方式播放! 屏幕取词的一些问题 控制台程序中怎样才能使用MFC中的CString类,要那些设置? 怎么老是这两个错误的呢? 在编译很多程序的时候都是 获取某个窗口里面的某点的像素 在CListCtrl控件选择 item的时候为什么不能选择整行,而只是选择了第一列? 这个操作如何实现(关于鼠标定位),就这点分了,大家别嫌弃
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的派生类。
{
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);
}
_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());
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>谢谢!