以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Web Services & Semantic Web Services 』  (http://bbs.xml.org.cn/list.asp?boardid=10)
----  [求助]帮我看下vc6使用mssoap3.0调用c#的webservice,string参数中只要传入乱码在EndMessage时就出错。  (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=76350)


--  作者:asdf1122
--  发布时间:8/13/2009 10:36:00 AM

--  [求助]帮我看下vc6使用mssoap3.0调用c#的webservice,string参数中只要传入乱码在EndMessage时就出错。
  hr = soapConn.CreateInstance(__uuidof(HttpConnector30));
  if(FAILED(hr))
   return -3;
  soapConn->Property["EndPointURL"] = m_wsURL.c_str();
  hr = soapConn->Connect();
  soapConn->Property["SoapAction"] = (m_wsNameSpace + m_wsMethod).c_str();
  
  hr = soapConn->BeginMessage();
  hr = soapSerializer.CreateInstance(__uuidof(SoapSerializer30));
  
  if(FAILED(hr))
   return -4;
  soapSerializer->Init(_variant_t((IUnknown*)soapConn->InputStream));
  soapSerializer->StartEnvelope("soap", "http://schemas.xmlsoap.org/soap/envelope/", "");
  
  
  
  soapSerializer->StartBody(L"");
  soapSerializer->StartElement(m_wsMethod.c_str(), m_wsNameSpace.c_str(), "NONE", "");
  BSTR wsStr(NULL);
  soapSerializer->StartElement(paramName.c_str(), m_wsNameSpace.c_str(), "", "");
   
  wsStr = ConvertStringToBSTR1("???????");<<<<<----参数如果是???????EndMessage时就出错。否则如果是可见字符就正常。
  //wsStr = ConvertStringToBSTR1("123456");<<<<<---正常。
  SoapSerializer->WriteString(wsStr);
  soapSerializer->EndElement(); 
    
  /*****************************************************/
  soapSerializer->EndElement();
  soapSerializer->EndBody();
  hr = soapSerializer->EndEnvelope();  
  if(FAILED(hr))
   return -5;

  soapConn->EndMessage();   //参数中有非法字符时抛出_com_error,


--  作者:asdf1122
--  发布时间:8/13/2009 1:59:00 PM

--  
有人吗?帮忙啊!!!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms