我用VC调用webservice发送信息,出了点问题请大家来帮我看看

lihongling0994 2007-09-21 02:24:01
我用的是网上很正统的代码,但是在前边的连接什么的都成功了,但是后边调用接口函数以后就失败,始终给我返回:Soapenv:Server.generalException
请教各位高手我该怎么办,如果觉得分不够,还可以再开贴加的。
...全文
206 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我调了你的代码,代码没发现有什么问题,最好和webservice方联系一下.因为exception是对方报的,而不是你的程序报的.
lihongling0994 2007-09-22
  • 打赏
  • 举报
回复
不知道啊,什么都没有给我要求,就是调用接口函数然后把数据发送过去就可以了,哪个能帮一下我啊!!!
lihongling0994 2007-09-22
  • 打赏
  • 举报
回复
好的,非常感谢,我明天就和他联系
  • 打赏
  • 举报
回复
目标服务器是否要求安全连接,要求客户端提供证书?
lihongling0994 2007-09-21
  • 打赏
  • 举报
回复
上面就是代码,麻烦大家帮我看一下
lihongling0994 2007-09-21
  • 打赏
  • 举报
回复
CString CWebservice_vcDlg::BeginSoap(CString UserName, CString Password, CString WebUrl)
{
HRESULT hr;
ISoapConnectorPtr SoapConnector;
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
char *szNameSpace = "http://211.95.160.38:80/cif/services/SMS/";//"http://211.95.160.38/cif/services/SMS/";
try
{
//创建SoapConnector类的对象
SoapConnector.CreateInstance(__uuidof(HttpConnector30));

//指定Web服务的地址
SoapConnector->Property ["EndPointURL"] ="http://211.95.160.38:80/cif/services/SMS?wsdl";

//与Web服务连接
hr=SoapConnector->Connect();
if(FAILED(hr)) return "";

//指定Web服务完成的操作
SoapConnector->Property ["SoapAction"] = szNameSpace + _bstr_t("send");

//准备发送消息给Web服务
SoapConnector->BeginMessage();

// 创建SoapSerializer对象
Serializer.CreateInstance(__uuidof(SoapSerializer30));

// 将serializer连接到connector的输入字符串
Serializer->Init(_variant_t((IUnknown*)SoapConnector->InputStream));

// 创建SOAP消息
Serializer->StartEnvelope(L"SOAP-ENV", L"", L"UTF-8");
Serializer->StartBody("");

//Serializer->StartElement("send",szNameSpace,"","");
Serializer->StartElement("send","http://211.95.160.38:80/cif/services/SMS?wsdl","","");
Serializer->StartElement("cmpcode","http://211.95.160.38:80/cif/services/SMS?wsdl","NONE","");
Serializer->WriteString("0166");
Serializer->EndElement();
Serializer->StartElement("phone","http://211.95.160.38:80/cif/services/SMS?wsdl","NONE","");
Serializer->WriteString("13258310354");
Serializer->EndElement();
Serializer->StartElement("content","http://211.95.160.38:80/cif/services/SMS?wsdl","NONE","");
Serializer->WriteString("你好");
Serializer->EndElement();
Serializer->StartElement("receivedate","http://211.95.160.38:80/cif/services/SMS?wsdl","NONE","");
Serializer->WriteString("");
Serializer->EndElement();


Serializer->EndElement();

Serializer->EndBody();
Serializer->EndEnvelope();

//消息真正地发给Web服务
hr=SoapConnector->EndMessage();
if(FAILED(hr)) return "";

// 读取响应
Reader.CreateInstance(__uuidof(SoapReader30));

// 将reader联接到connector的输出字符串
Reader->Load(_variant_t((IUnknown*)SoapConnector->OutputStream), _T(""));
CString str;
str = CString((const char *)Reader->RpcResult->text);
return CString((const char *)Reader->RpcResult->text);
}
catch (_com_error e)
{
return (CString)(char*)e.Description();
}
}
  • 打赏
  • 举报
回复
代码哩?

18,356

社区成员

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

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