maven 座標
<!-- HTTP -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
一,發送post和get請求
http工具類
public class HttpUtils {
/**
* 發送 get請求
*/
public static String get(String param,String URL) {
CloseableHttpClient httpclient = HttpClients.createDefault();
String obj=null;
try {
HttpUriRequest httpget = new HttpGet(URL+"?"+param);
// 執行get請求.
CloseableHttpResponse response = httpclient.execute(httpget);
try {
// 獲取響應實體
HttpEntity entity = response.getEntity();
// 打印響應狀態
System.out.println(response.getStatusLine());
if (entity != null) {
obj=EntityUtils.toString(entity);
}
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 關閉連接,釋放資源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return obj;
}
/**
* 發送 post請求
*/
public static String post(String json,String URL) {
String obj=null;
// 創建默認的httpClient實例.
CloseableHttpClient httpclient = HttpClients.createDefault();
// 創建httppost
HttpPost httppost = new HttpPost(URL);
httppost.addHeader("Content-type", "application/json; charset=utf-8");
httppost.setHeader("Accept", "application/json");
try {
StringEntity s = new StringEntity(json,Charset.forName("UTF-8")); //對參數進行編碼,防止中文亂碼
s.setContentEncoding("UTF-8");
httppost.setEntity(s);
CloseableHttpResponse response = httpclient.execute(httppost);
try {
//獲取相應實體
HttpEntity entity = response.getEntity();
if (entity != null) {
obj=EntityUtils.toString(entity, "UTF-8");
}
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 關閉連接,釋放資源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return obj;
}
}
json工具類
public final class JSONUtil {
public static<T> String toJson(T t){
return JSON.toJSONString(t);
}
public static<T> T parseJson(String text,Class<T> clazz){
return JSON.parseObject(text, clazz);
}
}
控制層
//發送post請求
Obj obj=new Obj()//參數 任意實體類
HttpUtils.post(JSONUtil.toJson(obj), "http://www.baidu.com");
//發送get請求
String param="param1=" + URLEncoder.encode("中國", "UTF-8") + "¶m2=value2";
HttpUtils.get(param, "http://www.baidu.com");
二 接受 http請求
接收post請求
//接收post請求需要加@RequestBody
@RequestMapping(value="test",method=RequestMethod.POST)
@ResponseBody
public MyResult<Object> test(HttpServletRequest request,@RequestBody String record){
MyResult<Object> result = new MyResult<Object>();
Obj obj=JSONUtil.parseJson(record, Obj.class);
return result;
}
接收get請求
@RequestMapping(value="test")
@ResponseBody
public MyResult<Object> test(HttpServletRequest request,String param1,String param2){
MyResult<Object> result = new MyResult<Object>();
//TODO
return result;
}