短信平台接口调用方法参考
Posted 性能、可用性、伸缩性、扩展性、安全性、可监控是网站架构最核心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了短信平台接口调用方法参考相关的知识,希望对你有一定的参考价值。
C#代码示例
http请求
string url="http://xxx.com/api/MsgSend.asmx"; protected string sendmsgByPost() //POST方式请求 { StringBuilder sb = new StringBuilder(); sb.Append("userCode=用户名&"); sb.Append("userPass=密码&"); sb.Append("DesNo=手机号&"); sb.Append("Msg=短信内容【签名】&"); sb.Append("Channel=通道号"); string result = httpPost(url + "/sendMes", sb.ToString()); return result; } protected string sendmsgByGet() //Get方式请求 { StringBuilder sb = new StringBuilder(); sb.Append("userCode=用户名&"); sb.Append("userPass=密码&"); sb.Append("DesNo=手机号&"); sb.Append("Msg=短信内容【签名】&"); sb.Append("Channel=通道号"); string result = httpGet(url + "/sendMes", sb.ToString()); return result; } protected string httpGet(string url, string data) //http get请求 { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + data); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return retString; } catch (Exception ex) { return ex.Message; } } protected string httpPost(string url, string data) //http post请求 { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; byte[] info = Encoding.UTF8.GetBytes(data); using (Stream stream = request.GetRequestStream()) { stream.Write(info, 0, info.Length); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return retString; } catch (Exception ex) { return ex.Message; } }
webservice请求
private void SendSms() //webservice请求方式 { TopenServiceReference.MsgSendSoapClient topen = new TopenServiceReference.MsgSendSoapClient(); string userName = "用户名"; string passWord = "密码"; string mobiles = "13900000000,13800000000,13100000000,……"; string msgContent = "短信内容(含签名)"; string channel = "由拓鹏给您的通道编号"; string sendResult = topen.sendMes(userName, passWord, mobiles, msgContent, channel); //此处的sendMes可能因接口文档不同而不同,请注意。返回批次号,可保存下来,作为获取发送报告凭据 //然后,根据返回的sendResult作相应处理 }
PHP代码示例
http请求
<?php $urlsend="http://xxx.com/api/MsgSend.asmx/sendMes"; $token=array("userCode"=>"用户名","userPass"=>"密码","DesNo"=>"手机号","Msg"=>"短信内容【签名】","Channel"=>"通道号"); echo http($urlsend,$token,"GET"); //get请求 echo http($urlsend,$token,"POST"); //post请求 function http($url,$param,$action="GET"){ $ch=curl_init(); $config=array(CURLOPT_RETURNTRANSFER=>true,CURLOPT_URL=>$url); if($action=="POST"){ $config[CURLOPT_POST]=true; } $config[CURLOPT_POSTFIELDS]=http_build_query($param); curl_setopt_array($ch,$config); $result=curl_exec($ch); curl_close($ch); return $result; } ?>
webservice请求
<?php //此处仅示例发送短信,其他可类推 header("Content-type: text/html; charset=utf-8"); $client = new SoapClient("http://xxx.com/api/MsgSend.asmx?WSDL"); $param = array("userCode"=>"用户名","userPass"=>"密码","DesNo"=>"手机号","Msg"=>"短信内容【签名】","Channel"=>"通道号"); $p = $client->sendMes($param); print_r($p); ?>
java代码示例
http请求
//说明:此处需引用httpclient、httpcore、commons-logging三个jar包 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.*; import java.security.MessageDigest; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.*; import javax.crypto.SecretKey; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.IvParameterSpec; import javax.crypto.SecretKeyFactory; import javax.crypto.Cipher; public static void main(String[] args) { String url="http://xxx.com/api/MsgSend.asmx/SendMes"; List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("userCode", "用户名")); nvps.add(new BasicNameValuePair("userPass", "密码")); nvps.add(new BasicNameValuePair("DesNo", "手机号")); nvps.add(new BasicNameValuePair("Msg", "短信内容【签名】")); nvps.add(new BasicNameValuePair("Channel", "通道号")); String post=httpPost(url,nvps); //post请求 String getparam="userCode=用户名&userPass=密码&DesNo=手机号&Msg=短信内容【签名】&Channel=通道号"; String result=httpGet(url,getparam); //get请求 } public static String httpPost(String url,List<NameValuePair> params) { String result = ""; try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); HttpResponse response = httpclient.execute(httpPost); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instreams = entity.getContent(); result = convertStreamToString(instreams); System.out.println(result); } } catch (Exception e) { } return result; } public static String httpGet(String url,String params){ String result=""; try{ HttpClient client=new DefaultHttpClient(); if(params!=""){ url=url+"?"+params; } HttpGet httpget=new HttpGet(url); HttpResponse response=client.execute(httpget); HttpEntity entity=response.getEntity(); if (entity != null) { InputStream instreams = entity.getContent(); result = convertStreamToString(instreams); System.out.println(result); } }catch(Exception e){} return result; } public static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); }
webservice请求
public static void main(String[] args) { org.tempuri.MsgSend service = new org.tempuri.MsgSend(); org.tempuri.MsgSendSoap port = service.getMsgSendSoap(); String result= port.sendMes("用户名","密码","手机号","短信内容【签名】","通道号"); System.out.println(result); }
asp代码示例
http请求
<% dim sendurl,senddata sendurl="http://xxx.com/api/MsgSend.asmx/SendMes" senddata="userCode=用户名&userPass=密码&DesNo=手机号&Msg=短信内容【签名】&Channel=通道号" Response.Write(HTTPRequest(sendurl,senddata,"GET")) <!-- get请求 --> Response.Write(HTTPRequest(sendurl,senddata,"POST")) <!-- post请求 --> function HTTPRequest(url,data,method) dim http set http=server.createobject("MSXML2.SERVERXMLHTTP.3.0") if method = "GET" then Http.open "GET",url+"?"+data,false elseif method = "POST" then Http.open "POST",url,false end if Http.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded" Http.send(data) if Http.readystate<>4 then exit function End if HTTPRequest=BytesToStr(Http.responseBody,"utf-8") set http=nothing if err.number<>0 then err.Clear End function Function BytesToStr(body, charset) Dim objStream Set objStream = Server.CreateObject("Adodb.Stream") objStream.Type = 1 objStream.Mode = 3 objStream.Open objStream.Write body objStream.Position = 0 objStream.Type = 2 objStream.Charset = charset BytesToStr = objStream.ReadText objStream.Close Set objStream = Nothing End Function %>
以上是关于短信平台接口调用方法参考的主要内容,如果未能解决你的问题,请参考以下文章