import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
/*
功能: web.cr6868.com HTTP接口 發送短信
說明: http://web.cr6868.com/asmx/smsservice.aspx?name=登錄名&pwd=接口密碼&mobile=手機號碼&content=內容&sign=簽名&stime=發送時間&type=pt&extno=自定義擴展碼
*/
public class xioo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//發送內容
String content = " JAVA示例測試";
String sign="簽名";
// 創建StringBuffer對象用來操作字符串
StringBuffer sb = new StringBuffer("http://web.cr6868.com/asmx/smsservice.aspx?");
// 向StringBuffer追加用戶名
sb.append("name=test");
// 向StringBuffer追加密碼(登陸網頁版,在管理中心--基本資料--接口密碼,是28位的)
sb.append("&pwd=CEE4D6CC34577FB24D1726F8AFEB");
// 向StringBuffer追加手機號碼
sb.append("&mobile=18916409691");
// 向StringBuffer追加消息內容轉URL標準碼
sb.append("&content="+URLEncoder.encode(content,"UTF-8"));
//追加發送時間,可為空,為空為及時發送
sb.append("&stime=");
//加簽名
sb.append("&sign="+URLEncoder.encode(sign,"UTF-8"));
//type為固定值pt extno為擴展碼,必須為數字 可為空
sb.append("&type=pt&extno=");
// 創建url對象
//String temp = new String(sb.toString().getBytes("GBK"),"UTF-8");
System.out.println("sb:"+sb.toString());
URL url = new URL(sb.toString());
// 打開url連接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 設置url請求方式 ‘get’ 或者 ‘post’
connection.setRequestMethod("POST");
// 發送
InputStream is =url.openStream();
//轉換返回值
String returnStr = xioo.convertStreamToString(is);
// 返回結果為‘0,20140009090990,1,提交成功’ 發送成功 具體見說明文檔
System.out.println(returnStr);
// 返回發送結果
}
/**
* 轉換返回值類型為UTF-8格式.
* @param is
* @return
*/
public static String convertStreamToString(InputStream is) {
StringBuilder sb1 = new StringBuilder();
byte[] bytes = new byte[4096];
int size = 0;
try {
while ((size = is.read(bytes)) > 0) {
String str = new String(bytes, 0, size, "UTF-8");
sb1.append(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb1.toString();
}
}