您的位置:首页 > 理论基础 > 计算机网络

HttpClient使用详解

2016-07-17 00:00 441 查看
HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅使客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。

1、服务端

@RequestMapping(value="/getUserDatasJson",produces="text/plain;charset=UTF-8")
public void findDatas(String accountName,HttpServletRequest request,HttpServletResponse response) {
// 0非管理员,1管理员
String isAdminUser = userFunctionService.getIsAdminUser(accountName);
List<DimensionData> userDatas = null;
if("0".equals(isAdminUser)){
userDatas = dataPrivilegeService.findUserDatas(accountName);
} else if("1".equals(isAdminUser)){
userDatas = dataPrivilegeService.findAdminUserDatas(accountName);
}

StringBuffer jsonStr = new StringBuffer();
int size = userDatas != null ? userDatas.size() : 0;
// 拼接json格式
jsonStr.append("{");
jsonStr.append("\""+accountName+"\":[");
for(int i = 0; i < size; i++){
String dimensionType = userDatas.get(i).getDimensionType();
String dimensionValue = userDatas.get(i).getDimensionValue();
String id = userDatas.get(i).getId();
jsonStr.append("{");
jsonStr.append("\"dimensionType\":\""+dimensionType+"\",");
jsonStr.append("\"id\":\""+id+"\",");
jsonStr.append("\"dimensionValue\":\""+dimensionValue+"\"");
jsonStr.append("}");
if(i != size - 1){
jsonStr.append(",");
}
}
jsonStr.append("    ]}");
try {
response.getWriter().write(jsonStr.toString());
} catch (IOException e) {
e.printStackTrace();
}
}

2、客户端httpClient请求

String url = "http://127.0.0.1:8081/sso/dataPrivilegeController/getUserDatasJson?accountName=zhangsan";
HttpClient httpClient = HttpClients.createDefault();//new DefaultHttpClient();
// 创建httpget
HttpGet httpGet = new HttpGet(url);
String jsonResult = "";
HttpResponse httpResponse = null;
try {
// 执行get请求.
httpResponse = httpClient.execute(httpGet);
// 获取响应实体
HttpEntity entity = httpResponse.getEntity();
// 响应内容
byte[]bytes = EntityUtils.toByteArray(entity);
jsonResult = new String(bytes,"utf-8");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(jsonResult);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: