API短信平台的部分例子代码(转)

例子代码
下面分别列出了常用的四种web开发语言调用此接口的方法,各种语言的版本均封装为统一的接口函数 send_sms,并且参数的个数和类型都一样,以下做统一说明。

 

参数说明:
用户名,即企业代码: $user_id
密码:$password
接收短信的手机号(如果是多个手机号,用逗号分开,最多100个):$mobile_phone
要发送的短信内容:$msg
定时发送时间(格式为:年月日时分秒“040524165823”,如果即时发送置为空):$send_date
子特服号(与企业代码相同):$subCode


1.PHP 代码
function sms_send($user_id,$password,$mobile_phone,$msg,$send_date,$subCode)
/*
php 发送HTTP POST数据函数
*/

{
       //生成请求字串
       $request = 'user_id=' . urlencode($user_id);
       $request .= '&password=' . urlencode($password);
       $request .= '&mobile_phone=' . urlencode($mobile_phone);
       $request .= '&msg=' . urlencode($msg);
       $request .= '&send_date=' . urlencode($send_date);
       $request .= '&subCode=' . urlencode($subCode);
             

       //生成HTTP头
       $header = "POST http://bms.hichina.com/sms_gateway/sms_api HTTP/1.0\r\n";
       $header .= "Content-type: application/x-www-form-urlencoded\r\n";
       $header .= "Content-length: " . strlen($request) . "\r\n\r\n";
      

       //打开连接      
       $fp = fsockopen('bms.hichina.com', 80, &$err_num, &$err_msg,30);
       if (!$fp)
          $response="网络忙请稍候再试";
       else
       {
              //发送请求信息
              fputs($fp, $header . $request);
              //得到返回值
              while (!feof($fp))
              $response .= fgets($fp, 128);
       }
 
       $strarray=split("\r\n\r\n",$response);
       $res=$strarray[1];
       return  Chop($res);
}
 
?>
 

//调用例子
$ret=sms_send('4003','XXXXXX','13900000000','test msg from php code','','4003');
 
//输出返回结果
echo "$ret";
?>


2.Perl 代码
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common;
 
sub sms_send
#通过http post 发送短消息
{
    my($user_id,$password,$mobile_phone,$msg,$send_date,$subCode)=@_;
      
    my @parm;
    my $url="http://bms.hichina.com/sms_gateway/sms_api"; 
    my $ua = LWP::UserAgent->new();
 
    push(@parm,'user_id',$user_id);
    push(@parm,'password',$password);
    push(@parm,'mobile_phone',$mobile_phone);
    push(@parm,'msg',$msg);
    push(@parm,'send_date',$send_date);
    push(@parm,'subCode',$subCode);
 
    my $req = POST $url, \@parm;
    my $response = $ua->request($req);
 
    if ($response->is_success)
    {
          return($response->content);
    }
    else
    {
          return("310 network is busy!");
    }
 
}
 
$ret_str=&sms_send('4003','xxxxxx','13900000000','test msg from perl code','','4003');
print "$ret_str";


3.Java 代码
package hichina.util;
 
import java.net.URLEncoder;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
import java.io.*;
 
class http_post
{
    public String send_sms(String user_id, String password, String mobile_phone,
                         String msg, String send_date, String subcode) {
    String ret_str = "";
   
    try {
    // Construct data
      String data = "user_id=" + user_id + "&password=" + password +
          "&mobile_phone=" + mobile_phone +
          "&msg=" + URLEncoder.encode(msg, "GBK") + "&send_date=" + send_date +
          "&subcode=" + subcode;
    // Send data
      URL url = new URL("http://bms.hichina.com/sms_gateway/sms_api");
      URLConnection conn = url.openConnection();
      conn.setDoOutput(true);
      OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
      wr.write(data);
      wr.flush();
 
    // Get the response
      BufferedReader rd = new BufferedReader(new InputStreamReader(conn.
          getInputStream()));
      String line;
      while ( (line = rd.readLine()) != null) {
          ret_str += line;
      }
      wr.close();
      rd.close();
    }
    catch (Exception e) {
      System.out.println(e.toString());
    }
 
    return ret_str;
  }
 
  public static void main(String[] args) throws IOException
  {
    http_post http= new http_post();
    String ret=http.send_sms("4003","xxxxxxx","13900000000","fromjava中国万岁","","4003");
    System.out.println(ret);
  }
 
}


4. ASP 代码
<%
'本例子程序使用了微软的winhttp 组件,万网的虚拟主机上已经安装了此组件.
如果您使用非万网主机执行此段代码,需要在win2000客户机上安装service pack4,win2003也默认安装了此组件。如果缺乏winhttp组件将返回424错误。
function send_sms(user_id,password,mobile_phone,msg,sendtime,subcode)
       dim sendStr,http
       Err.Clear
       On Error Resume Next
       sendStr="user_id=" & user_id & "&password=" & password & "&mobile_phone=" & mobile_phone & "&msg=" & server.URLEncode(msg) & "&sendtime=" & sendtime & "&subcode=" & subcode
       set http=server.CreateObject("WinHttp.WinHttpRequest.5.1")
       http.SetTimeouts 30000,50000,30000,30000
       http.Open "POST", "http://bms.hichina.com/sms_gateway/sms_api", False
       http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"    

       http.Send sendStr     

       If Err.Number = 0 Then
              send_sms=trim(http.responsetext)
              'Response.Write send_sms
       else
              send_sms=-1
              Response.Write Err.Number
       end if
       http.Abort()
end function

dim ret

ret = send_sms ("4003","xxxxxxxx","13900000000","中国万网短信测试","","4003")

Response.Write ret

%>
 

 

备注:以上代码都经过实际测试,均可粘贴到您的站点程序中直接使用,如有问题请与客服部门联系。

posted @ 2007-03-23 13:34  Leepy  阅读(1690)  评论(3编辑  收藏  举报