正好在测试短信平台,并且提供的接口都是http的,顺便学习一下HttpWebRequest的用法,其中
HttpUtility的使用必须在References文件夹中引用Syste.Web
:
/// <summary> /// 内容敏感字查询 /// </summary> /// <param name="SendText">要检查的内容</param> /// <returns>没有敏感词则返回空串,否则返回所含的敏感词,词之间用“|”隔开</returns> public string WordsCheck(string SendText) { string result = ""; string postStr = HttpUtility.UrlEncode(SendText, Encoding.UTF8); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("{0}?msg={1}", urlCheckwords, postStr)); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse resp = (HttpWebResponse)request.GetResponse(); using (StreamReader streamReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8)) { result = streamReader.ReadToEnd(); } return result; } /// <summary> /// 发送短信内容 /// </summary> /// <param name="Content">经过敏感词检查后的短信内容</param> /// <param name="Mobile">接收手机号码,多个号码用分号隔开</param> /// <param name="SendDate">发送时间,空串或过期时间为立即发送;格式:YYYY-MM-DD HH:MM:SS</param> /// <returns>发送结果编号</returns> public string SendText(string Content, string Mobile, string SendDate) { string result = ""; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlSend); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; string dataStr = HttpUtility.UrlEncode(Content, Encoding.UTF8); string postStr = string.Format("username={0}&password={1}&mobile={2}&content={3}&extcode=&senddate={4}&batchid=", userName, password, Mobile, dataStr, SendDate); byte[] postBytes = Encoding.ASCII.GetBytes(postStr); request.ContentLength = postBytes.Length; request.GetRequestStream().Write(postBytes, 0, postBytes.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { result = myStreamReader.ReadToEnd(); } return result; }