最近小弟准备做一个AJAX 的开源的开发框架以方便JAVA程序的调用
程序的实现方法是
在ATL 工程里对服务器发送数据包(数据包都是BASE64了的)然后在服务器端的JAVA程序里
对数据包进行解码
VC6里程序 发送数据的代码大概如下,现在我可以调用CHttpFile::WriteString 发送一段数据到服务器并且可以在服务器
端进行解码,但现在的问题是,我发送请求到服务器端的Servlet,Servlet 接受请求然后解包,并且调用相应的JAVA方法
进行操作,然后需要返回方法的结果给客服端 于是我要调用 response.getOutputStream(String.getBytes())向输出流写入字符串,此时我先调用QueryInfoStatusCode 查询状态码 然后调用readString() 获取服务器端的结果,但是问题出现了
我调用readString 的时候出现了异常,异常信息为 要求操作句柄的状态错误。
我查了MSDN 也搞不定 晕了,所以在这里求高手解决下。谢谢
CHttpConnection *m_connection = m_InternetSession.GetHttpConnection(_T(this->strServer),INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_TRANSFER_ASCII,
atoi(this->nPort));
m_HttpFile = m_connection->OpenRequest(CHttpConnection::HTTP_VERB_POST,_T("/Easy_AJAX/EasyAjaxServerlet"));
if (m_HttpFile)
{
if(!m_HttpFile->SendRequestEx(m_PacketSendMsg.GetLength()))
{
* = VARIANT_FALSE;
this->m_Error = _T("调用SendRequestEx 函数失败!");
return S_OK;
}
m_HttpFile->WriteString(m_PacketSendMsg);
DWORD dwStatusCode ;
m_HttpFile->QueryInfoStatusCode(dwStatusCode);
if (dwStatusCode>=400||dwStatusCode<=599)
{
this->m_Error = "Request URL Generate Error!";
}else{
//获取服务器端发过来的数据
m_HttpFile->ReadString(this->m_ResponseMessage);
}
m_HttpFile->EndRequest();
}
m_InternetSession.Close();

解决方案 »

  1.   

    是不是m_HttpFile->QueryInfoStatusCode(dwStatusCode); 这一行出错的?你看下哪句
      

  2.   

    1. 找个锁定进程的HTTP嗅探器,看看到底有没有数据发来。
    2. 你的ATL工程是作为一个客户端测试用的吗?
       好像和服务端功能关系不大啊
    3. 可以在两端单步调试看看到底怎么出的问题
    4. 你好像没处理同步的问题,有可能你的ATL要读数据了,数据还没发来,
       读完了,数据才到,是不是有这些问题呢
      

  3.   

    唉还是没有人能解决啊
    CSDN 的牛人到哪里去了呢
      

  4.   

    问你错误哪行,你问CSDN无人?
      

  5.   

    错误就在这一行 m_HttpFile->QueryInfoStatusCode(dwStatusCode); 
    MD MSDN 上 写着
    Group Meaning 
    200-299 Success 
    300-399 Information 
    400-499 Request error 
    500-599 Server error  
    但是我调用的时候返回的是一个超大的数字
      

  6.   

    m_HttpFile->QueryInfoStatusCode(&dwStatusCode); 
      

  7.   

    楼上没错另外把这一句
    m_HttpFile->EndRequest(); 
    挪到下面这句之后调用m_HttpFile->WriteString(m_PacketSendMsg); 
    m_HttpFile->EndRequest(); 试试看
      

  8.   

    代码我已经改好了
    不过上面的代码几乎被我全部重写了,昨天晚上搞到2点终于
    把这个AJAX开发框架作好了,今天早上晕晕的,不过心情还是挺好的
    在这里我发个帖来感谢一下大家的支持,虽然楼上各位兄弟并未帮我解决问题
    但是分数我还是给各位加上去,感谢大家来捧场