接口文檔
代碼示例
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.*; import java.util.HashMap; import java.util.Map; /** * 用來格式化seed參數 */ private static final String dateFormatStr="yyyyMMddHHmmss"; public static void main(String[] args) { //輸出發送結果 System.out.println(LxSdkImpl.sendSms("accName", "accPwd", "aimcodes", "content")); //輸出查詢報告結果 System.out.println(LxSdkImpl.qryReport("accName", "accPwd")); //輸出查詢余額結果 System.out.println(LxSdkImpl.qryBalance("accName", "accPwd")); //輸出查詢上行短信的結果 System.out.println(LxSdkImpl.receiveSms("accName", "accPwd")); } /** * 短信發送 * * @param accName * 樂信賬號 * @param accPwd * 樂信密碼 * @param aimcodes * 接收者手機號 * @param content * 短信內容(包含內容和簽名) * @return */ private static String sendSms(String accName, String accPwd, String aimcodes, String content) { try { Map
params = new HashMap<>(); params.put("accName", accName); params.put("accPwd", MD5.getMd5String(accPwd)); params.put("content", URLEncoder.encode(content,"UTF-8")); String url = "http://www.helenafiguerola.com/sdk/send"; params.put("aimcodes",aimcodes); params.put("dataType","json"); String res = post(url,params,"www.helenafiguerola.com",80,"UTF-8"); return res; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 獲取連接 * @param urlStr * @param host * @param port * @return */ public static HttpURLConnection getConnection(String urlStr,String host,int port) { HttpURLConnection uc = null; try { Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port)); URL url = new URL(urlStr); uc = (HttpURLConnection)url.openConnection(proxy); } catch (Exception e) { e.printStackTrace(); } return uc; } /** * 發送短信 * @param url * @param params * @param host * @param port * @param chart * @return */ public static String post(String url, Map params, String host, int port, String chart) { String msg = ""; try { HttpURLConnection httpURLConnection = getConnection(url, host, port); //設置是否向connection輸出,因為這個是post請求,參數要放在http正文內,因此需要設為true httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); // 默認是 GET方式 httpURLConnection.setRequestMethod("POST"); // Post 請求不能使用緩存 httpURLConnection.setUseCaches(false); httpURLConnection.setInstanceFollowRedirects(true); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("contentType", chart); //POST請求 DataOutputStream out = new DataOutputStream(httpURLConnection.getOutputStream()); StringBuffer params2 = new StringBuffer(); for (String key : params.keySet()) { params2.append(key).append("=").append(params.get(key)).append("&"); } String paramsStr = params2.toString(); int len = paramsStr.lastIndexOf("&"); paramsStr =paramsStr.substring(0, len); byte[] bypes = paramsStr.toString().getBytes(); out.write(bypes); out.flush(); out.close(); //讀取響應 BufferedReader reader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(),chart)); String lines; StringBuffer sb = new StringBuffer(""); while ((lines = reader.readLine()) != null) { lines = new String(lines.getBytes()); sb.append(lines); } msg = sb.toString(); reader.close(); // 斷開連接 httpURLConnection.disconnect(); } catch (Exception e) { e.printStackTrace(); } return msg; } /** * 查詢余額 * @param accName 用戶名 * @param accPwd 原始密碼 * @return 服務端返回的結果 ok:業務id 或者 錯誤代碼 */ public static String qryBalance(String accName,String accPwd){ StringBuffer sb = new StringBuffer("http://www.helenafiguerola.com/sdk/qryBalance?"); try { sb.append("&accName="+accName); sb.append("&accPwd="+MD5.getMd5String(accPwd)); URL url = new URL(sb.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); return in.readLine(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 查詢回執報告 * @param accName 用戶名 * @param accPwd 原始密碼 * @return 返回的查詢報告結果 格式為:業務id,手機號,狀態;業務id,手機號,狀態 狀態1表示成功;0表示失敗 */ public static String qryReport(String accName,String accPwd){ StringBuffer sb = new StringBuffer("http://www.helenafiguerola.com/sdk/qryReport?"); try { sb.append("&accName="+accName); sb.append("&accPwd="+MD5.getMd5String(accPwd)); URL url = new URL(sb.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); return in.readLine(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 查詢上行短信 * @param accName 用戶名 * @param accPwd 密碼 * @return */ public static String receiveSms(String accName,String accPwd){ StringBuffer sb = new StringBuffer("http://www.helenafiguerola.com/sdk/receiveSms?"); try { String seed=new SimpleDateFormat(dateFormatStr).format(new Date()); sb.append("&accName="+accName); sb.append("&accPwd="+MD5.getMd5String(accPwd)); URL url = new URL(sb.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); return in.readLine(); } catch (Exception e) { e.printStackTrace(); } return null; }
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.*; import java.util.HashMap; import java.util.Map; /** * 用來格式化seed參數 */ private static final String dateFormatStr="yyyyMMddHHmmss"; public static void main(String[] args) { //輸出發送結果2222222 Mapparams = new HashMap<>(); params.put("accName",賬號); params.put("accPwd",MD5.getMd5String(密碼)); params.put("content","內容【簽名】"); String url = "http://www.helenafiguerola.com/sdk/send"; params.put("aimcodes",號碼); params.put("dataType","json"); String str = post(url,params,"www.helenafiguerola.com",80,"UTF-8"); System.out.println(str); //輸出查詢報告結果 System.out.println(LxSdkImpl.qryReport("accName", "accPwd")); //輸出查詢余額結果 System.out.println(LxSdkImpl.qryBalance("accName", "accPwd")); //輸出查詢上行短信的結果 System.out.println(LxSdkImpl.receiveSms("accName", "accPwd")); } /** * 獲取連接 * @param urlStr * @param host * @param port * @return */ public static HttpURLConnection getConnection(String urlStr,String host,int port) { HttpURLConnection uc = null; try { Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port)); URL url = new URL(urlStr); uc = (HttpURLConnection)url.openConnection(proxy); } catch (Exception e) { e.printStackTrace(); } return uc; } /** * 使用代理post請求 * @param url * @param params * @param host * @param port * @param chart * @return */ public static String post(String url, Map params, String host, int port, String chart) { String msg = ""; try { HttpURLConnection httpURLConnection = getConnection(url, host, port); //設置是否向connection輸出,因為這個是post請求,參數要放在http正文內,因此需要設為true httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); // 默認是 GET方式 httpURLConnection.setRequestMethod("POST"); // Post 請求不能使用緩存 httpURLConnection.setUseCaches(false); httpURLConnection.setInstanceFollowRedirects(true); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("contentType", chart); //POST請求 DataOutputStream out = new DataOutputStream(httpURLConnection.getOutputStream()); StringBuffer params2 = new StringBuffer(); for (String key : params.keySet()) { params2.append(key).append("=").append(params.get(key)).append("&"); } String paramsStr = params2.toString(); int len = paramsStr.lastIndexOf("&"); paramsStr =paramsStr.substring(0, len); byte[] bypes = paramsStr.toString().getBytes(); out.write(bypes); out.flush(); out.close(); //讀取響應 BufferedReader reader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(),chart)); String lines; StringBuffer sb = new StringBuffer(""); while ((lines = reader.readLine()) != null) { lines = new String(lines.getBytes()); sb.append(lines); } msg = sb.toString(); reader.close(); // 斷開連接 httpURLConnection.disconnect(); } catch (Exception e) { e.printStackTrace(); } return msg; } /** * 查詢余額 * @param accName 用戶名 * @param accPwd 原始密碼 * @param seed 當前時間 格式:YYYYMMDD HHMISS 例如:20130806102030 * @return 服務端返回的結果 ok:業務id 或者 錯誤代碼 */ public static String qryBalance(String accName,String accPwd){ StringBuffer sb = new StringBuffer("http://sdk.lx198.com/sdk/qryBalance2?"); try { String seed=new SimpleDateFormat(dateFormatStr).format(new Date()); sb.append("&accName="+accName); sb.append("&seed="+seed); sb.append("&accPwd="+MD5.getMd5String(MD5.getMd5String(accPwd)+seed)); URL url = new URL(sb.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); return in.readLine(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 查詢繪制報告 * @param accName 用戶名 * @param accPwd 原始密碼 * @param seed 當前時間 格式:YYYYMMDD HHMISS 例如:20130806102030 * @return 返回的查詢報告結果 格式為:業務id,手機號,狀態;業務id,手機號,狀態 狀態1表示成功;0表示失敗 */ public static String qryReport(String accName,String accPwd){ StringBuffer sb = new StringBuffer("http://sdk.lx198.com/sdk/qryReport2?"); try { String seed=new SimpleDateFormat(dateFormatStr).format(new Date()); sb.append("&accName="+accName); sb.append("&seed="+seed); sb.append("&accPwd="+MD5.getMd5String(MD5.getMd5String(accPwd)+seed)); URL url = new URL(sb.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); return in.readLine(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 查詢上行短信 * @param accName 用戶名 * @param accPwd 密碼 * @param seed 當前時間 格式:YYYYMMDD HHMISS 例如:20130806102030 * @return 返回的上行短信信息格式為:簽名$$$$上行手機號$$$$上行內容$$$$上行時間####簽名$$$$上行手機號$$$$上行內容$$$$上行時間 */ public static String receiveSms(String accName,String accPwd){ StringBuffer sb = new StringBuffer("http://sdk.lx198.com/sdk/receiveSms2?"); try { String seed=new SimpleDateFormat(dateFormatStr).format(new Date()); sb.append("&accName="+accName); sb.append("&seed="+seed); sb.append("&accPwd="+MD5.getMd5String(MD5.getMd5String(accPwd)+seed)); URL url = new URL(sb.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); return in.readLine(); } catch (Exception e) { e.printStackTrace(); } return null; }