Java httpclient请求
来源:互联网 发布:jquery rotate.js cdn 编辑:程序博客网 时间:2024/06/05 19:06
最近遇到要用java代码发起http请求,分享一个小列子.
1.发起get请求
@POST
@Path("task/delete")
public void delete(Po po) {
// 创建默认的httpClient实例.
CloseableHttpClient httpclient = HttpClients.createDefault();
// 创建httpPost
HttpDelete delete = new HttpDelete("http://172.17.81.14:8001/apis/"+po.getId());
// 添加请求头信息
delete.setHeader("Content-Type", "application/json");
// 发送Post,并返回一个HttpResponse对象
try {
HttpResponse response = httpclient.execute(delete);
@SuppressWarnings("unused")
Integer result = response.getStatusLine().getStatusCode();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.post请求
@POST
@Path("task/insert")
public String getSerieObj(Po po) {
String result = "";
// 创建默认的httpClient实例.
CloseableHttpClient httpclient = HttpClients.createDefault();
// 创建httpPost
HttpPost httppost = new HttpPost("http://172.17.81.14:8001/apis");
// 建立一个JSONObject 添加参数
JSONObject jobj = new JSONObject();
jobj.put("methods", po.getMethods());
jobj.put("uris", po.getUris());
jobj.put("id", po.getId());
jobj.put("hosts", po.getHosts());
jobj.put("preserve_host", po.getPreserve_host());
jobj.put("created_at", po.getCreated_at());
jobj.put("upstream_url", po.getUpstream_url());
jobj.put("https_only", po.getHttps_only());
jobj.put("strip_uri", po.getStrip_uri());
jobj.put("http_if_terminated", po.getHttp_if_terminated());
jobj.put("name", po.getName());
jobj.put("retries", po.getRetries());
// 转换至json格式
String msg = getStringFromJson(jobj);
// 添加请求头信息
httppost.setHeader("Content-Type", "application/json");
try {
// 设置编码 注入post数据
httppost.setEntity(new StringEntity(msg, HTTP.UTF_8));
// 发送Post,并返回一个HttpResponse对象
HttpResponse response = httpclient.execute(httppost);
if (response.getStatusLine().getStatusCode() == 400) {
throw new InvalidRestParamException("参数错误");
} else if (response.getStatusLine().getStatusCode() == 415) {
throw new ResourceNotFoundException("HTTP请求415错误");
} else if (response.getStatusLine().getStatusCode() == 500) {
throw new RestException("服务器内部错误");
} else if (response.getStatusLine().getStatusCode() == 200) {// 如果状态码为200,发送成功
result = EntityUtils.toString(response.getEntity());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (RestException e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
// 拼接json格式的字符串
public String getStringFromJson(JSONObject adata) {
StringBuffer sb = new StringBuffer();
sb.append("{");
for (Object key : adata.keySet()) {
sb.append("\"" + key + "\":\"" + adata.get(key) + "\",");
}
String rtn = sb.toString().substring(0, sb.toString().length() - 1)
+ "}";
return rtn;
}
3.httpPatch请求
@POST
@Path("task/update")
public void update(Po po) {
String result = "";
// 建立一个JSONObject 添加参数
JSONObject jobj = new JSONObject();
jobj.put("methods", po.getMethods());
jobj.put("uris", po.getUris());
jobj.put("hosts", po.getHosts());
jobj.put("preserve_host", po.getPreserve_host());
jobj.put("upstream_url", po.getUpstream_url());
jobj.put("https_only", po.getHttps_only());
jobj.put("strip_uri", po.getStrip_uri());
jobj.put("http_if_terminated", po.getHttp_if_terminated());
jobj.put("name", po.getName());
jobj.put("retries", po.getRetries());
// 转换至json格式
String msg = getStringFromJson(jobj);
HttpClient httpClient = new DefaultHttpClient();
HttpPatch httpPatch = new HttpPatch("http://172.17.81.14:8001/apis/"+po.getId());
httpPatch.setHeader("Content-type", "application/json");
httpPatch.setHeader("Charset", HTTP.UTF_8);
httpPatch.setHeader("Accept", "application/json");
httpPatch.setHeader("Accept-Charset", HTTP.UTF_8);
try {
if (msg != null){
StringEntity entity = new StringEntity(msg,HTTP.UTF_8);
httpPatch.setEntity(entity);
}
HttpResponse response = httpClient.execute(httpPatch);
if (response.getStatusLine().getStatusCode() == 400) {
throw new InvalidRestParamException("参数错误");
} else if (response.getStatusLine().getStatusCode() == 415) {
throw new ResourceNotFoundException("HTTP请求415错误");
} else if (response.getStatusLine().getStatusCode() == 500) {
throw new RestException("服务器内部错误");
} else if (response.getStatusLine().getStatusCode() == 200) {// 如果状态码为200,发送成功
result = EntityUtils.toString(response.getEntity());
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
((Closeable) httpClient).close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- java-httpclient-HTTPS请求
- Java httpclient请求
- Java使用HttpClient发送请求
- Java -- HttpClient之Get请求
- java HttpClient进行POST请求
- java httpclient发送post get 请求
- java HttpClient get post请求 调用接口
- Java使用HttpClient库发送请求
- Java HttpPost请求基于apache的httpclient
- Java HttpClient Post请求发送数据乱码
- java发送http请求(URL、HttpClient)
- Java通过URI和HttpClient发送请求
- [Java]随记--HttpClient发送put请求
- 【Java】HttpURLConnection,HttpClient 的 Get,Post 请求
- JAVA利用HttpClient进行POST请求(HTTPS)
- HttpClient java发送网络请求的学习
- Java的HttpClient、HttpGet和HttpPost请求
- Java类实现发送Http请求(HttpClient)
- [leetcode]--338. Counting Bits
- Java web 环境搭建 环境依赖 操作系统 :Windows 7 开发工具 :IntelliJ IDEA 开发工具依赖环境
- linux内核线程 [创建]
- FunDA(6)- Reactive Streams:Play with Iteratees、Enumerator and Enumeratees_1
- VerilogHDL语言实现组合逻辑电路
- Java httpclient请求
- set_union set_intersection
- C12-1 等腰三角形的面积
- 数据流重导向
- ChucK初步(4)
- 如果你不是每天被人拒绝,那就说明你的人生目标不够远大。(If you aren't getting rejected on a daily basis, your goals aren't ambit
- suse linux 文件目录备份和恢复
- git最常用命令
- Leetcode 115 - Distinct Subsequences(dp)