[求助]帮我看下vc6使用mssoap3.0调用c#的webservice,string参数中只要传入乱码在EndMessage时就出错。

abcd1122 2009-08-13 03:44:52
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,

...全文
56 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧