有没有能已post方式访问的hyperlink控件 用shellexecute 好像没办法带post数据。我想在界面上增加一个hyperlink,但只能已get方式带参数。请问有办法用post方式打开一个ie访问吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #include "afxinet.h"bool PostData(LPCTSTR host, LPCTSTR object, LPCTSTR postdata, LPCTSTR refererlink, int port){ CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded"); strHeaders += "\r\nAccept-Language:zh-cn"; if(refererlink) { strHeaders += "\r\nReferer:"; strHeaders += refererlink; } CString strFormData = _T(postdata); CInternetSession session; CHttpConnection* pConnection = session.GetHttpConnection(_T(host)); if(pConnection == NULL) return false; CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T(object)); if(pFile == NULL) return false; BOOL result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength()); if(result == FALSE) return false; DWORD dwRet; pFile->QueryInfoStatusCode(dwRet); CString m_strHtml=""; char szBuff[1024]; UINT nRead; while ((nRead = pFile->Read(szBuff,1023))>0) { m_strHtml+=CString(szBuff,nRead); } FILE *fp = fopen("C:\\11.html", "w"); fwrite(m_strHtml, 1, m_strHtml.GetLength(), fp); fclose(fp); if (dwRet == HTTP_STATUS_OK) { return true; } return false;} CString szContent; CAsyncSocket* pClient = new CAsyncSocket; char *szContent = "POST /sms/sms.asp?txt=12345789" n = pClient->Create(); n = pClient->Connect("www.csdn.net", 80); Sleep(2000); n = pClient->Send(szContent, strlen(*szContent)); do { Sleep(40); if (i++ > 50) break; n = pClient->Receive(rbuf, sizeof(rbuf)); } while (n <= 0); pClient->Close(); delete pClient;这个貌似也行的 弹出一个IE还不简单,ShellExec下得了 如果你想弹出一个IE,然后post,恕我无能为力 有办法的!自己写一个mini web server,通过shellexecute来重定向(以POST 方式,theForm.submit)到真实的web server 你用 ShellExecute 带参数以 Get 的方式打开不行么?非要用 Post ?数据有多长?这样既能打开 IE ,又能按你要求提交数据。 怎么使按下键盘的向下(VK_DOWN)相当于按照下了TAb键(VK_TAB) 如何获取局域网中的ip地址??? 询问:如何用vc自动实现数据库衔接 问个简单的问题,关于如何在屏幕是上画线,请指点我一下 如何编程隐藏其他程序的托盘图标? --2 关于DllGetClassObject的疑问! 运行后无EXE 关于监控的问题。麻烦大哥们给个提示 通过odbc转换数据到excel文件,如何去除每个单元格的文字前的单引号? 各位老大,在北京试用期能拿多少¥ VC访问Access的问题 印刷体汉字识别的书有吗?
#include "afxinet.h"bool PostData(LPCTSTR host, LPCTSTR object, LPCTSTR postdata, LPCTSTR refererlink, int port)
{
CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded");
strHeaders += "\r\nAccept-Language:zh-cn";
if(refererlink)
{
strHeaders += "\r\nReferer:";
strHeaders += refererlink;
}
CString strFormData = _T(postdata); CInternetSession session;
CHttpConnection* pConnection = session.GetHttpConnection(_T(host));
if(pConnection == NULL) return false;
CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T(object));
if(pFile == NULL) return false; BOOL result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
if(result == FALSE) return false; DWORD dwRet;
pFile->QueryInfoStatusCode(dwRet); CString m_strHtml="";
char szBuff[1024];
UINT nRead;
while ((nRead = pFile->Read(szBuff,1023))>0)
{
m_strHtml+=CString(szBuff,nRead);
}
FILE *fp = fopen("C:\\11.html", "w");
fwrite(m_strHtml, 1, m_strHtml.GetLength(), fp);
fclose(fp); if (dwRet == HTTP_STATUS_OK)
{
return true;
}
return false;
}
CString szContent;
CAsyncSocket* pClient = new CAsyncSocket;
char *szContent = "POST /sms/sms.asp?txt=12345789"
n = pClient->Create();
n = pClient->Connect("www.csdn.net", 80);
Sleep(2000);
n = pClient->Send(szContent, strlen(*szContent));
do
{
Sleep(40);
if (i++ > 50) break;
n = pClient->Receive(rbuf, sizeof(rbuf));
} while (n <= 0);
pClient->Close();
delete pClient;这个貌似也行的
自己写一个mini web server,
通过shellexecute来重定向(以POST 方式,theForm.submit)到真实的web server
数据有多长?这样既能打开 IE ,又能按你要求提交数据。