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>64379</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;
            }

 

你可能感兴趣的:(SOAP)