我用一个http类GenericHTTPClient,各位高手,谁用过?
我这szURL这个值传什么啊?
GenericHTTPClient *m_pClient;
bool BConect = m_pClient->Connect("http://10.1.10.167:8080/dcsportal");
    if (BConect==TRUE)
    {
        CString szURL;
        szURL.Format("%s","");
        if (m_pClient->Request(szURL))    
        {
            LPCTSTR szHTML = m_pClient->QueryHTTPResponse();
        }
        else
        {
            LPVOID lpMsgBuffer;
            DWORD dwRet=FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | 
                         FORMAT_MESSAGE_FROM_SYSTEM,
                         NULL,
                         m_pClient->GetLastError(),
                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                         reinterpret_cast<LPTSTR>(&lpMsgBuffer),
                         0,
                         NULL);                                      MessageBox( reinterpret_cast<LPTSTR>(lpMsgBuffer), "ERROR", MB_OK);
             LocalFree(lpMsgBuffer);
        }
        m_pClient->Close();
    }
    else
    {
        AfxMessageBox("connct error");
    } 

解决方案 »

  1.   

    默认是get方法,请求一个页面不需要connect,你请求哪个页面就传哪个页面的URL
    GenericHTTPClient   *m_pClient; 
    CString   szURL; 
    szURL.Format( "%s ", "http://10.1.10.167:8080/dcsportal "); 
    if   (m_pClient-> Request(szURL))         
     { 
        LPCTSTR   szHTML   =   m_pClient-> QueryHTTPResponse(); 

    else 

            LPVOID   lpMsgBuffer; //这里还没分配空间呢,猛将兄
            DWORD   dwRet=FormatMessage(   FORMAT_MESSAGE_ALLOCATE_BUFFER   |   
                                      FORMAT_MESSAGE_FROM_SYSTEM, 
                                      NULL, 
                                      m_pClient-> GetLastError(), 
                                      MAKELANGID(LANG_NEUTRAL,   SUBLANG_DEFAULT), 
                                      reinterpret_cast <LPTSTR> (&lpMsgBuffer), 
                                      0, 
                         NULL);                                                             MessageBox(   reinterpret_cast <LPTSTR> (lpMsgBuffer),   "ERROR ",  MB_OK); 
              LocalFree(lpMsgBuffer); 

    m_pClient-> Close(); 
        
      

  2.   

    这个类没有提供让你向get后的页面添加信息的方法,如果想添加,需要修改这个类,分析收到的http流,把你要添加的信息,放到里面,然后再显示。当然你也可以不用这个类,用浏览器对象webbrowser,去实现,他有让你向get后的页面加信息的方法。
    没分配空间(未调用LocalAlloc为后面要输出的错误信息分配空间)也不懂,就需要好好去看书了,务在浮沙筑高台,这是侯捷说的
      

  3.   

    我改成post了,但是又出现了一个问题,就是Request的时候不对,怎么改?
    szURL.Format("%s","http://10.1.10.88:8080/dcsportalv2/insertTguidanceBySEC.action?tguidance.trialid=1313&tguidance.messagetxt=中国人&tguidance.sendusername=admin");
            AfxMessageBox(szURL);
            DWORD dwMinSize = MultiByteToWideChar(CP_ACP, 0, szURL, -1, NULL, 0);
    wchar_t *szURL1;
    szURL1 = new wchar_t[dwMinSize];
    if(!szURL1)
    {
    delete []szURL1;
    }
    MultiByteToWideChar(CP_ACP,0,szURL,-1,szURL1,dwMinSize);
    if (m_pClient->Request((const char*)szURL1,GenericHTTPClient::RequestPostMethod))
    {
    delete []szURL1;
    LPCTSTR szHTML = m_pClient->QueryHTTPResponse();
    AfxMessageBox(szHTML);
    if (szHTML == "true")
    {
    ListShow(strinfo);
    }

    }
    else
    {
    LPVOID lpMsgBuffer;
    lpMsgBuffer = LocalAlloc(LPTR,1024*1000);
    DWORD dwRet=FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | 
     FORMAT_MESSAGE_FROM_SYSTEM,
     NULL,
     m_pClient->GetLastError(),
     MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
     reinterpret_cast<LPTSTR>(&lpMsgBuffer),
     0,
     NULL);                           MessageBox( reinterpret_cast<LPTSTR>(lpMsgBuffer), "ERROR", MB_OK);
     LocalFree(lpMsgBuffer);
    }
    m_pClient->Close();

    m_cTextSend.SetWindowText("");
    }