使用luosimao发送短信接口调用

来源:互联网 发布:机电一体化网络教育 编辑:程序博客网 时间:2024/06/05 21:06

购买和api地址:luosimao

代码:

import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.security.KeyManagementException;import java.security.NoSuchAlgorithmException;import java.security.cert.X509Certificate;import java.util.ArrayList;import java.util.List;import java.util.zip.GZIPInputStream;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import org.apache.http.Header;import org.apache.http.HttpException;import org.apache.http.HttpRequest;import org.apache.http.HttpRequestInterceptor;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.NameValuePair;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.params.CoreConnectionPNames;import org.apache.http.protocol.HttpContext;import sun.misc.BASE64Encoder;public class LuosimaoSendSMS {public static void main(String[] args) throws Exception {LuosimaoSendSMS api = new LuosimaoSendSMS();api.testSend("手机号码","短信内容");}public String testSend(String mobile,String message) throws Exception {DefaultHttpClient client = httpClientTrustingAllSSLCerts();client.addRequestInterceptor(new HttpRequestInterceptor() {public void process(HttpRequest request, HttpContext context)throws HttpException, IOException {request.addHeader("Accept-Encoding", "gzip");request.addHeader("Authorization", "Basic "+ new BASE64Encoder().encode("api:4e1584ba8a361690de8b945bf35ce23a".getBytes("utf-8")));}});client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT,30000);HttpPost request = new HttpPost("https://sms-api.luosimao.com/v1/send");ByteArrayOutputStream bos = null;InputStream bis = null;byte[] buf = new byte[10240];String content = null;try {List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("mobile", mobile));params.add(new BasicNameValuePair("message",message+"【本汇宝科技】"));request.setEntity(new UrlEncodedFormEntity(params, "utf-8"));HttpResponse response = client.execute(request);if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {bis = response.getEntity().getContent();Header[] gzip = response.getHeaders("Content-Encoding");bos = new ByteArrayOutputStream();int count;while ((count = bis.read(buf)) != -1) {bos.write(buf, 0, count);}bis.close();if (gzip.length > 0&& gzip[0].getValue().equalsIgnoreCase("gzip")) {GZIPInputStream gzin = new GZIPInputStream(new ByteArrayInputStream(bos.toByteArray()));StringBuffer sb = new StringBuffer();int size;while ((size = gzin.read(buf)) != -1) {sb.append(new String(buf, 0, size, "utf-8"));}gzin.close();bos.close();content = sb.toString();} else {content = bos.toString();}System.out.println(content);} else {System.out.println("error code is "+ response.getStatusLine().getStatusCode());}return content;} finally {if (bis != null) {try {bis.close();// 最后要关闭BufferedReader} catch (Exception e) {}}}}private String testStatus() throws Exception {DefaultHttpClient client = new DefaultHttpClient();client.addRequestInterceptor(new HttpRequestInterceptor() {public void process(HttpRequest request, HttpContext context)throws HttpException, IOException {request.addHeader("Accept-Encoding", "gzip");request.addHeader("Authorization", "Basic "+ new BASE64Encoder().encode("api:4e1584ba8a361690de8b945bf35ce23a ".getBytes("utf-8")));}});client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT,30000);HttpGet request = new HttpGet("https://sms-api.luosimao.com/v1/status.json");ByteArrayOutputStream bos = null;InputStream bis = null;byte[] buf = new byte[10240];String content = null;try {HttpResponse response = client.execute(request);if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {bis = response.getEntity().getContent();Header[] gzip = response.getHeaders("Content-Encoding");bos = new ByteArrayOutputStream();int count;while ((count = bis.read(buf)) != -1) {bos.write(buf, 0, count);}bis.close();if (gzip.length > 0&& gzip[0].getValue().equalsIgnoreCase("gzip")) {GZIPInputStream gzin = new GZIPInputStream(new ByteArrayInputStream(bos.toByteArray()));StringBuffer sb = new StringBuffer();int size;while ((size = gzin.read(buf)) != -1) {sb.append(new String(buf, 0, size, "utf-8"));}gzin.close();bos.close();content = sb.toString();} else {content = bos.toString();}System.out.println(content);} else {System.out.println("error code is "+ response.getStatusLine().getStatusCode());}return content;} finally {if (bis != null) {try {bis.close();// 最后要关闭BufferedReader} catch (Exception e) {}}}}private DefaultHttpClient httpClientTrustingAllSSLCerts()throws NoSuchAlgorithmException, KeyManagementException {DefaultHttpClient httpclient = new DefaultHttpClient();SSLContext sc = SSLContext.getInstance("SSL");sc.init(null, getTrustingManager(), new java.security.SecureRandom());SSLSocketFactory socketFactory = new SSLSocketFactory(sc);Scheme sch = new Scheme("https", 443, socketFactory);httpclient.getConnectionManager().getSchemeRegistry().register(sch);return httpclient;}private TrustManager[] getTrustingManager() {TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {public java.security.cert.X509Certificate[] getAcceptedIssuers() {return null;}public void checkClientTrusted(X509Certificate[] certs,String authType) {// Do nothing}public void checkServerTrusted(X509Certificate[] certs,String authType) {// Do nothing}} };return trustAllCerts;}}


原创粉丝点击