用WinInet向ASP发送POST请求的问题,请高手指教!

Mickey_Chue 2002-12-30 10:11:00
程序如下:

//解析URL地址
AfxParseURL(m_strUrl, m_dwServiceType, m_strServerName, m_strObject, m_nPort);
//建立INTERNET连接
CInternetSession ISession(_T("Tax SSL HTTP Sender"));
DWORD dwHttpRequestFlags = INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_AUTO_REDIRECT;
//头信息及数据内容
CString strHeader = _T("Content-Type: application/x-www-form-urlencoded");
CString strData = _T("This is a Test for http.");
//HTTP连接
CHttpConnection* pIServer = NULL;
CHttpFile* pFile = NULL;
try
{
pIServer = ISession.GetHttpConnection(m_strServerName, m_nPort);
pFile = pIServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, m_strObject); //, NULL, 1, NULL, NULL, dwHttpRequestFlags);
BOOL result = pFile->SendRequest(strHeader,(LPVOID)(LPCTSTR)strData, strData.GetLength());
//取返回数据
TCHAR sz[1024];
while (pFile->ReadString(sz, 1023))
cout << sz;
cout << endl;
}
catch(...)
{.....}

问题如下:
pFile->SendRequest()调用成功,而且ReadString可以读到ASP返回的数据,不过ASP端却没有收到发送的数据("This is a Test for http."),请高手指点一下是什么问题。

ASP端使用以下语句接收:
data=Request.Form
data=transtr(data)
'写日志
set fso=server.CreateObject("scripting.filesystemobject")
set myfile=fso.OpenTextFile("c:\testlog.txt",8,true)
myfile.writeline(now)
myfile.writeline(data)
myfile.WriteBlankLines(1)
'返回数据
temp = "HTTP Request Test OK!"
Response.Write temp

--
============
oO菩提葡萄Oo
============
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
masterz 2002-12-30
  • 打赏
  • 举报
回复
void post()
{
CInternetSession session("My Session");
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
CString ServerName = "webmail.21cn.com";
INTERNET_PORT nPort = 80;
DWORD retcode;
char outBuff[300] = "LoginName=aaa&passwd=xxx&DomainName=21cn.com";//I have test this with my loginname and password
try
{
pServer = session.GetHttpConnection(ServerName,nPort);
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,"/NULL/NULL/NULL/NULL/NULL/SignIn.gen",NULL,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT);
pFile -> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded");
pFile -> AddRequestHeaders("Accept: */*");
pFile -> SendRequest(NULL,0,outBuff,strlen(outBuff)+1);
pFile -> QueryInfoStatusCode(retcode);
// you can read from the file after this......I've just left it out.
for(int i=0;i<10;i++)//read ten line of returned HTML,you need to edit this to use the result
{
CString smsg;
pFile->ReadString(smsg);
AfxMessageBox(smsg);
}
DWORD dwlen=pFile->GetLength();
char buf[1024];
DWORD dwread=pFile->Read(buf,1024);
}
catch (CInternetException * e){};
delete pFile;
delete pServer;
session.Close();
}
Mickey_Chue 2002-12-30
  • 打赏
  • 举报
回复
问题已经解决,把下句中的INTERNET_FLAG_NO_AUTO_REDIRECT去掉就可以了,不过有没有人告诉我为什么不可以加这个标志吗?谢谢!

DWORD dwHttpRequestFlags = INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_AUTO_REDIRECT;
基于改进鲸鱼优化算法的微网系统能量优化管理研究(Matlab代码实现)内容概要:本文围绕基于改进鲸鱼优化算法的微网系统能量优化管理展开研究,结合Matlab代码实现,提出了一种改进的鲸鱼优化算法用于解决微网系统中的能量调度与优化问题。研究重点在于提升算法的收敛速度与寻优能力,以应对微网中多源异构能源(如光伏、储能、负荷等)的复杂耦合关系与不确定性。通过构建微网能量管理模型,综合考虑运行成本、碳排放、系统稳定性等因素,实现对微网系统内各单元的协同优化调度。文中提供了完整的仿真案例与代码实现,验证了所提方法在降低运行成本、提高能源利用效率方面的有效性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微网、智能电网、能源优化领域的工程技术人员。; 使用场景及目标:①应用于微网系统能量管理策略的设计与仿真;②为智能优化算法(如鲸鱼优化算法)的改进与实际工程应用提供参考;③服务于科研复现、课程设计或毕业课题研究,提升对能源系统优化调度的理解与实践能力。; 阅读建议:建议读者结合Matlab代码逐段理解算法实现流程,重点关注目标函数建模、约束条件处理及算法改进策略;同时可对比传统优化算法效果,深入掌握智能算法在电力系统中的应用技巧。

18,358

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧