maven
org.apache.httpcomponents
httpclient
4.5.1
发送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 String toJson(T t){
return JSON.toJSONString(t);
}
public static T parseJson(String text,Class 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 test(HttpServletRequest request,@RequestBody String record){
MyResult result = new MyResult();
Obj obj=JSONUtil.parseJson(record, Obj.class);
return result;
}
接收get请求
@RequestMapping(value="test")
@ResponseBody
public MyResult test(HttpServletRequest request,String param1,String param2){
MyResult result = new MyResult();
//TODO
return result;
}