需求说是这么写的:“系统在分配每个合作方帐号时,合作方需要提供一个结果通知URL,在以上两个接口中提交扫描请求后,我们在完成扫描后会自动请求提供的URL通知扫描结果,将扫描结果通过参数名为report的参数通过POST方式发送到提供的URL页面”需求是上传一个文件到服务器上,服务器对文件进行扫描,然后返回扫描的结果,现在上传文件和对应的参数功能已经实现了,但是扫描结果不知道怎么接受,我想弹出一个消息框,把结果写到里边,不知怎么实现:需求文档上写的post参数有一项是“完成扫描后返回结果的URL”但是我用的MFC,所以不知道怎么接受这个结果代码是:
CString   CHttpClient::doPost(CString   href)   
{   
CInternetSession  session1;   //建立Internet会话
CHttpConnection*  conn1=NULL; //http连接对象指针
CHttpFile* pFile = NULL;      //
CString strServerName;   
CString strObject;   
INTERNET_PORT nPort;   
DWORD   dwServiceType;   
AfxParseURL((LPCTSTR)href,dwServiceType, strServerName, strObject, nPort);   
DWORD   retcode;               
char*   outBuff   =   CONTENT.GetBuffer(1000);   
try       
{                   
conn1 = session1.GetHttpConnection(strServerName,nPort);           
        pFile = conn1->OpenRequest(0,strObject,NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_NO_AUTO_REDIRECT);           
        pFile -> AddRequestHeaders("Content-Type:   application/x-www-form-urlencoded");           
        pFile -> AddRequestHeaders("Accept:   */*");                           
        pFile -> SendRequest(NULL,0,outBuff,strlen(outBuff)+1);                   
        pFile -> QueryInfoStatusCode(retcode);                   
}                             
catch(CInternetException * e)
{ }                 
if(pFile)   
{   
CString   text;   
for(int   i=0;pFile->ReadString(text);i++)   
{   
httpsource_post=httpsource_post+text+"\r\n"; 
}
pFile->Close();   
}else   
{   
    
}   
return httpsource_post;   
delete pFile;           
    delete conn1;           
    session1.Close();   
}   但是httpsource_post返回的是开始扫描的信息,扫描完成后的信息怎么得到呀?

解决方案 »

  1.   

    就是它会将扫描结果通过你指定的URL(比如你指定www.myurl.com)POST过来。
    你可以先抓包分析一下它提交过来的数据,然后再进行处理,处理方法有:
    1,通过动态脚本语言将数据插入数据库,然后MFC再去读取结果
    2,通过SOCKET模拟HTTP协议,接收它的请求
    3,直接在动态脚本语言(asp,jsp,php,.net...)中处理
      

  2.   


    那个自己指定的返回URL不是必须的,我做的是客户端,想用MFC的消息框接受这个结果,请问发送什么命令请求结果?