C# demo

demo调用

    private SmsClient smsClient = new SmsClient("127.0.0.1", "8080", "user03", "986457");
    //单内容批量发送
    private SendSmsResp SendSMS()
      {
          SendSmsResp sendSmsResp = smsClient.Send("【信息中心】 您的验证码为123456565", "15866515845");
          return sendSmsResp;
      }

SmsClient 针对接口的封装

    public class SmsClient
    {
        private String URL = "http://ip:port/websms/smsJsonService";
        private String BATCH_URL = "http://ip:port/batchwebsms/smsJsonService";
        private String userName, passWord;

        public SmsClient(String ip, String port, String userName, String passWord)
        {
            SetIPAndPort(ip, port, userName, passWord);
        }

        public void SetIPAndPort(String ip, String port, String userName, String passWord)
        {
            this.userName = userName;
            this.passWord = MD5Util.UserMd5(passWord);

            URL = URL.Replace("ip", ip);
            URL = URL.Replace("port", port);

            BATCH_URL = BATCH_URL.Replace("ip", ip);
            BATCH_URL = BATCH_URL.Replace("port", port);
        }

        //单内容多号码批量发送
         public SendSmsResp Send(String content, String phone)
        {
            IDictionary<String, String> map = new Dictionary<String, String>
            {
                { Constants.KEY_ACTION, Constants.ACTION_SEND_SMS },
                { Constants.KEY_USER_ID, userName },
                { Constants.KEY_MD5_PASSWORD, passWord },
                { Constants.KEY_CONTENT, content },
                { Constants.KEY_MOBILE, phone }
            };

            String mes = HttpUtil.HttpRequest(URL, map);
            SendSmsResp ssr = JsonHelper.DeserializeJsonToObject<SendSmsResp>(mes);
            return ssr;
        }

        //多内容打包发送,不同的内容对应不同的手机号,并且一个内容只能发一个手机号
        public BatchSmsResp Send(List<SmsContent> smsContents)
        {

            IDictionary<String, String> map = new Dictionary<String, String>
            {
                { Constants.KEY_USER_ID, userName },
                { Constants.KEY_MD5_PASSWORD, passWord },
                { Constants.KEY_CONTENT_ARR, SerializerHelper.JsonSerializer(smsContents) }
            };

            String mes = HttpUtil.HttpRequest(BATCH_URL, map);
            BatchSmsResp bsr = JsonHelper.DeserializeJsonToObject<BatchSmsResp>(mes);
            return bsr;         
        }

        //获取短信状态反馈 一次最多反馈500条,反馈状态只推一次,拿过的状态不在平台保存
         public SendReportResp GetMt()
        {
            IDictionary<String, String> map = new Dictionary<String, String>
            {
                { Constants.KEY_ACTION, Constants.ACTION_GET_SEND_REPORT },
                { Constants.KEY_USER_ID, userName },
                { Constants.KEY_MD5_PASSWORD, passWord }
            };

            String mes = HttpUtil.HttpRequest(URL, map);          
            SendReportResp srr = JsonHelper.DeserializeJsonToObject<SendReportResp>(mes);
            return srr;
        }

        //获取短信上行
         public DeliverResp GetMo()
        {
            IDictionary<String, String> map = new Dictionary<String, String>
            {
                { Constants.KEY_ACTION, Constants.ACTION_GET_DELIVER },
                { Constants.KEY_USER_ID, userName },
                { Constants.KEY_MD5_PASSWORD, passWord }
            };

            String mes = HttpUtil.HttpRequest(URL, map);
            DeliverResp dr = JsonHelper.DeserializeJsonToObject<DeliverResp>(mes);
            return dr;
        }
    }

HttpUtil请求方式封装

    // 创建POST方式的HTTP请求  
    public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters)
    {
            HttpWebRequest request = null;
            //如果是发送HTTPS请求  
            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
            {
                request = WebRequest.Create(url) as HttpWebRequest;
            }
            else
            {
                request = WebRequest.Create(url) as HttpWebRequest;
            }
            //请求方式
            request.Method = "POST";
            //提交数据格式
            request.ContentType = "application/x-www-form-urlencoded";

            //发送POST数据  
            if (!(parameters == null || parameters.Count == 0))
            {
                StringBuilder buffer = new StringBuilder();
                int i = 0;
                foreach (string key in parameters.Keys)
                {
                    if (i > 0)
                    {
                        buffer.AppendFormat("&{0}={1}", key, parameters[key]);
                    }
                    else
                    {
                        buffer.AppendFormat("{0}={1}", key, parameters[key]);
                        i++;
                    }
                }
                byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());
                using (Stream stream = request.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }
            }
            string[] values = request.Headers.GetValues("Content-Type");
            return request.GetResponse() as HttpWebResponse;
    }
    //获取请求的数据
    public static string GetResponseString(HttpWebResponse webresponse)
    {    
            using (Stream s = webresponse.GetResponseStream())
            {
                StreamReader reader = new StreamReader(s, Encoding.UTF8);
                return reader.ReadToEnd();
            }
    }

results matching ""

    No results matching ""