我用VC编写了一个基于Http协议的C/S程序.接收和发送程序都在我自己机器上.
在发送程序中我先建立了如下变量:
CInternetSession session;
CHttpConnection* pConnection = NULL;
CHttpFile* pFile = NULL;然后用pConnection = session.GetHttpConnection("127.0.0.1",nport); 获得链接
用pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, "",NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_KEEP_CONNECTION);获得收发文件,
用以下语句发送数据,
pFile->SendRequest(csHeaders, (LPVOID)(LPCTSTR)szFormData, strlen(szFormData));
pFile->Flush();用pFile->ReadString(line)获取数据,最后把三个变量分别关掉:
pFile->Close();
pConnection->Close();
session.Close();现在遇到问题是这样的:当我不退出应用程序,则第一次总能向接收程序发送成功,但以后就怎么也发不成功,我用pFile->QueryInfoStatusCode(dwRet)获得返回的状态都为403;
如果每次发送之前都重启应用程序就都成功,请问这是怎么回事.但我的应用程序启动之后是不可以关的,所以问题比较麻烦,请各位大侠帮忙.
在发送程序中我先建立了如下变量:
CInternetSession session;
CHttpConnection* pConnection = NULL;
CHttpFile* pFile = NULL;然后用pConnection = session.GetHttpConnection("127.0.0.1",nport); 获得链接
用pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, "",NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_KEEP_CONNECTION);获得收发文件,
用以下语句发送数据,
pFile->SendRequest(csHeaders, (LPVOID)(LPCTSTR)szFormData, strlen(szFormData));
pFile->Flush();用pFile->ReadString(line)获取数据,最后把三个变量分别关掉:
pFile->Close();
pConnection->Close();
session.Close();现在遇到问题是这样的:当我不退出应用程序,则第一次总能向接收程序发送成功,但以后就怎么也发不成功,我用pFile->QueryInfoStatusCode(dwRet)获得返回的状态都为403;
如果每次发送之前都重启应用程序就都成功,请问这是怎么回事.但我的应用程序启动之后是不可以关的,所以问题比较麻烦,请各位大侠帮忙.
The server understood the request, but is refusing to fulfill it.
检查你的Http服务器,是否处理连接的容量有限,还有处理的效率等。
右键点"默认Web站点","属性"
对话框的" 性能"、"Web站点"等页中查看
这个例子,我一般用它来调试和http server之间的通讯,可以很清楚的得到返回值。