SoapUI调用Web服务

时间:2023-03-09 20:35:31
SoapUI调用Web服务
msg = string.Empty;
//string sendAddr, string destAddr, string smContent, int IsNeedreport, DateTime sendTime, int smType
//Web服务的地址(配置在webConfig)
//string url = "http://iservice-sit.xx.com/eProxy/Service/WS_SMS/001?wsdl";
string url = System.Configuration.ConfigurationSettings.AppSettings["SendMsgUrl"];
if (string.IsNullOrEmpty(url)) {
msg = "发送短信的服务地址为空";
return false;
}
//string user = "EIP_EIP_COMMON";
//string password = "EIP_EIP_COMMON";
// string smsIsSecurity=System.Configuration.ConfigurationSettings.AppSettings["SmsIsSecurity"]; //StringBuilder sbStr = new StringBuilder();
//sbStr.Append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:sms=\"http://www.tibco.com/schemas/Service_MAS/Resource/SMSEND.xsd\">");
//sbStr.Append("<soapenv:Header>"); ////如果是管控地址需要添加管控账号和密码
//// if (smsIsSecurity.Equals("true"))
//// {
//sbStr.Append("<wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" SOAP-ENV:mustUnderstand=\"1\"><wsse:UsernameToken>");
//sbStr.AppendFormat("<wsse:Username>{0}</wsse:Username>", user);
//sbStr.AppendFormat("<wsse:Password>{0}</wsse:Password>", password);
//sbStr.Append("</wsse:UsernameToken>");
//sbStr.Append("</wsse:Security>");
//// }
//sbStr.Append("</soapenv:Header>");
//sbStr.Append("<soapenv:Body>");
//sbStr.Append("<sms:SMSENDRequest>");
////1 or more repetitions
//sbStr.Append("<sms:SMENTITY>");
//sbStr.AppendFormat("<sms:SENDADDR>{0}</sms:SENDADDR>", sm.SENDADDR);
//sbStr.AppendFormat("<sms:DESTADDR>{0}</sms:DESTADDR>", sm.DESTADDR);
//sbStr.AppendFormat("<sms:SM_CONTENT>{0}</sms:SM_CONTENT>", sm.SM_CONTENT);
//sbStr.AppendFormat("<sms:NEEDREPORT>{0}</sms:NEEDREPORT>", sm.NEEDREPORT);
//sbStr.AppendFormat("<sms:SENDTIME>{0}</sms:SENDTIME>", GetSendTime(sm.SENDTIME));
//sbStr.AppendFormat("<sms:SM_TYPE>{0}</sms:SM_TYPE>", sm.SM_TYPE);
////sbStr.Append("<sms:SYNC_TIME>2011-11-10T12:00:12</sms:SYNC_TIME>");
////sbStr.Append("<sms:CREATED_BY></sms:CREATED_BY>");
//// sbStr.Append("<sms:CREATION_DATE>2011-11-10T12:12:12</sms:CREATION_DATE>");
//sbStr.Append("</sms:SMENTITY>");
//sbStr.Append("</sms:SMSENDRequest>");
//sbStr.Append("</soapenv:Body>");
//sbStr.Append("</soapenv:Envelope>");
string sendXml = string.Format("<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:DefaultNamespace\" xmlns:sms=\"http://www.tibco.com/schemas/Service_MAS/Resource/SMSEND.xsd\"><soapenv:Header xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"><wsse:Security><wsse:UsernameToken><wsse:Username>{0}</wsse:Username> <wsse:Password>{1}</wsse:Password> </wsse:UsernameToken></wsse:Security></soapenv:Header><soapenv:Body><sms:SMSENDRequest><!--1 or more repetitions:--><sms:SMENTITY><sms:SENDADDR>{2}</sms:SENDADDR><sms:DESTADDR>{3}</sms:DESTADDR><!--Optional:--><sms:SM_CONTENT>{4}</sms:SM_CONTENT><!--Optional:--><sms:NEEDREPORT>{5}</sms:NEEDREPORT><sms:SENDTIME>{6}</sms:SENDTIME><sms:SM_TYPE>{7}</sms:SM_TYPE></sms:SMENTITY></sms:SMSENDRequest></soapenv:Body></soapenv:Envelope>",
user,
password,
sm.SENDADDR,
sm.DESTADDR,
sm.SM_CONTENT,
sm.NEEDREPORT,
GetSendTime(sm.SENDTIME),
sm.SM_TYPE
);
//创建XMLHTTP对象读取WebService数据
MSXML2.XMLHTTP xmlhttp = new MSXML2.XMLHTTP();
xmlhttp.open("POST", url, false, null, null);
xmlhttp.setRequestHeader("SOAPAction", "/Service/intfSendShortMessage-service.serviceagent/intfwsSendShortMessageEndpoint1/SendShortMessageOp");
xmlhttp.setRequestHeader("Content-Type", "application/soap+xml");
//xmlhttp.send(sbStr.ToString());
xmlhttp.send(sendXml); string result = System.Text.Encoding.UTF8.GetString((byte[])xmlhttp.responseBody);
xmlhttp.abort(); xmlhttp = null;
if (result.ToUpper().Contains("<NS0:MESSAGECODE>SUCCESS</NS0:MESSAGECODE>"))//"<ns0:messageCode>success</ns0:messageCode>"
{
return true;
}
else
{
//LogHelper.Error("SmsSendError", result);
msg = result;
return false;
}