首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

vc2008连接WebService出现错误,希望得到大家帮助,多谢

2013-08-10 
vc2008连接WebService出现异常,希望得到大家帮助,谢谢大家好,我想通过VC2008调用WebService来获取天气预报

vc2008连接WebService出现异常,希望得到大家帮助,谢谢
大家好,我想通过VC2008调用WebService来获取天气预报数据,但是有一部分代码在VC6.0下是正常的,在VC2008下出现异常,希望各位大牛能帮助我,谢谢。代码如下(其中注释掉的部分出现异常情况):
void CWeatherData::GetWeatherbyCityName(char * CharStr)
{
    CoInitialize(NULL);
    ISoapSerializerPtr Serializer;
    ISoapReaderPtr Reader;
    ISoapConnectorPtr Connector;
    // Connect to the service
    if (FAILED(Connector.CreateInstance(__uuidof(HttpConnector30)))) // 创建对象
    {
        MessageBox(NULL,_T("创建失败"),_T("系统提示"),MB_OK);
    }
    Connector->Property["EndPointURL"] = (LPCTSTR)m_csWebUrl; // wsdl路径
    Connector->Connect();

    // Begin the message // 消息体
    Connector->Property["SoapAction"] = (LPCTSTR)_T("http://WebXml.com.cn/getWeatherbyCityName"); // 函数体参数
    Connector->BeginMessage();

    Serializer.CreateInstance(__uuidof(SoapSerializer30));
    Serializer->Init(_variant_t((IUnknown *)Connector->InputStream));
    // Bulid the SOAP Message
    Serializer->StartEnvelope("Soap","","");
    Serializer->StartBody("");
    Serializer->StartElement("getWeatherbyCityName","http://WebXml.com.cn/","","Soap"); // 函数处理
    Serializer->StartElement("theCityname","","","Soap");
    Serializer->WriteString((LPCTSTR)CharStr); // 参数处理
    Serializer->EndElement();
    Serializer->EndBody();
    
    MessageBox(NULL,_T("测试开始"),_T("系统提示"),MB_OK);
    //Serializer->EndEnvelope();
    MessageBox(NULL,_T("测试结束"),_T("系统提示"),MB_OK);

    //Connector->EndMessage();
    
    //**********************
    Reader.CreateInstance(__uuidof(SoapReader30));
    
    //Reader->Load(_variant_t((IUnknown*)Connector->OutputStream),_T("")); // 加载返回数据
    
    // 获取数据
    MSXML2::IXMLDOMDocumentPtr pDoc;
    MSXML2::IXMLDOMElementPtr xmlRoot;
    //HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));


    //pDoc->loadXML(Reader->GetRpcResult()->xml);

    //char * Temp;
    /*
    for (int i=0; i<pDoc->childNodes->Getitem(0)->childNodes->Getlength();i++)
    {
        //Temp = (char *)pDoc->childNodes->Getitem(0)->childNodes->Getitem(i)->Gettext();
       // CString csTest;
        //USES_CONVERSION;
        //csTest = A2W(Temp);
       // MessageBox(NULL,csTest,_T("系统提示"),MB_OK);
        //strcpy(strarray[i],Temp);
    }
    */
}
[解决办法]
http://blog.csdn.net/sha_jinhao/article/details/8589618

热点排行