標籤:包含 puts new 封裝 amr set cti reader class
package post;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
public class DoTest {
/**
* 請求串連固定參數
* @param s 傳參地址
*/
public static URLConnection getConnection(String s) throws IOException {
URL url = new URL(s);
URLConnection conn = url.openConnection();
conn.setRequestProperty("Accept", "application/json"); // 設定接收資料的格式
conn.setRequestProperty("Content-Type", "application/json"); // 設定發送資料的格式
return conn;
}
//請求地址帶介面地址,請求參數是json字串,舉例如下:
//請求地址:http://127.0.0.1:8080/test/testone
//請求參數:{
// "testone": "testname1",
// "testtwo": "testname2"
// }
/**
* post請求
* @param s 傳參地址和介面
* @param param 請求參數
* @return 返迴響應結果
* @throws IOException 拋異常
*/
public static String reqPost(String s, String param) throws IOException {
System.out.println("請求地址:"+s);
System.out.println("請求參數:"+param);
String res = "";
URLConnection conn = getConnection(s); // POST要求URL中不包含請求參數
conn.setDoOutput(true); // 必須設定這兩個請求屬性為true,就表示預設使用POST發送
conn.setDoInput(true);
// 請求參數必須使用conn擷取的OutputStream輸出到請求體參數
PrintWriter out = new PrintWriter(conn.getOutputStream()); // 用PrintWriter進行封裝
out.println(param);
out.flush(); // 立即充刷至請求體)PrintWriter預設先寫在記憶體緩衝中
try// 發送正常的請求(擷取資源)
{
BufferedReader in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "utf-8"));
String line;
while ((line = in.readLine()) != null) {
res += line + "\n";
}
} catch (Exception e) {
System.out.println("Get Error Occured!");
e.printStackTrace();
}
return res;
}
}
http協議發送json字串請求