/**
* @version V1.0
* @Description 調用http接口工具類
* @Author pc
* @Date 2018/3/2 11:03
*/
public class HttpServiceUtil {
/**
* 接口調用(post請求) 數據處理
*
* @param url
* 請求路徑 例如:http://127.0.0.1:8080/test/test
* @param param
* 請求參數 例如:{ "userName":"Lily", "password":"123456" }
* @return 響應數據 例如:{ "resultId":"1" "resultMsg":"操作成功" }
*/
public static String insureResponsePost(String url, String param) {
PrintWriter out = null;
InputStream is = null;
BufferedReader br = null;
String result = "";
HttpURLConnection conn = null;
StringBuffer strBuffer = new StringBuffer();
try {
URL realUrl = new URL(url);
conn = (HttpURLConnection) realUrl.openConnection();
// 設置通用的請求屬性
conn.setRequestMethod( "POST");
conn.setConnectTimeout(20000);
conn.setReadTimeout(300000);
conn.setRequestProperty("Charset", "UTF-8");
// 傳輸數據為json,如果為其他格式可以進行修改
conn.setRequestProperty( "Content-Type", "application/json");
conn.setRequestProperty( "Content-Encoding", "utf-8");
// 發送POST請求必須設置如下兩行
conn.setDoOutput( true);
conn.setDoInput( true);
conn.setUseCaches( false);
// 獲取URLConnection對象對應的輸出流
out = new PrintWriter(conn.getOutputStream());
// 發送請求參數
out.print(param);
// flush輸出流的緩沖
out.flush();
is = conn.getInputStream();
br = new BufferedReader( new InputStreamReader(is));
String line = null;
while ((line=br.readLine())!= null) {
strBuffer.append(line);
}
result = strBuffer.toString();
} catch (Exception e) {
System. out.println( "發送 POST 請求出現異常!" + e);
e.printStackTrace();
}
// 使用finally塊來關閉輸出流、輸入流
finally {
try {
if (out != null) {
out.close();
}
if (br != null) {
br.close();
}
if (conn!= null) {
conn.disconnect();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
/**
* Http接口調用(get請求) 數據處理
* @param url 請求地址 例如:http://127.0.0.1:8080/test/test?username=zhangsan$username=123456
* @return
*/
public static String insureResponseBlockGet(String url) {
PrintWriter out = null;
String result = "";
HttpURLConnection conn = null;
InputStream is = null;
BufferedReader br = null;
StringBuffer strBuffer = new StringBuffer();
try {
URL realUrl = new URL(url);
// 打開和URL之間的連接
conn = (HttpURLConnection) realUrl.openConnection();
// 設置通用的請求屬性
conn.setRequestMethod("GET");
conn.setConnectTimeout(20000);
conn.setReadTimeout(300000);
// 傳輸數據為json,如果為其他格式可以進行修改
conn.setRequestProperty("Content-Type", "application/json");
is = conn.getInputStream();
br = new BufferedReader( new InputStreamReader(is));
String line = null;
while ((line=br.readLine())!= null) {
strBuffer.append(line);
}
result = strBuffer.toString();
} catch (Exception e) {
System.out.println( "發送 GET請求出現異常!" + e);
e.printStackTrace();
}
// 使用finally塊來關閉輸出流、輸入流
finally {
try {
if (out != null) {
out.close();
}
if (br != null) {
br.close();
}
if (conn != null) {
conn.disconnect();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
}