1. pom.xml

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>

2. HttpClient.java

package com.midea.clean.util;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import com.alibaba.fastjson.JSONObject;
import com.midea.clean.bo.UserBo; public class HttpClient { private static final Logger LOGGER = LoggerFactory.getLogger(HttpClient.class); /**
* 发送post请求
* @param url
* @param params
* @return
*/
public static String post(String url, Map<String, String> params) {
DefaultHttpClient httpclient = new DefaultHttpClient();
String body = null; HttpPost post = postForm(url, params); body = invoke(httpclient, post); httpclient.getConnectionManager().shutdown(); return body;
} /**
* 发送get请求
* @param url
* @return
*/
public static String get(String url) {
DefaultHttpClient httpclient = new DefaultHttpClient();
String body = null; HttpGet get = new HttpGet(url);
body = invoke(httpclient, get); httpclient.getConnectionManager().shutdown(); return body;
} private static String invoke(DefaultHttpClient httpclient, HttpUriRequest httpost) { HttpResponse response = sendRequest(httpclient, httpost);
String body = paseResponse(response); return body;
} private static String paseResponse(HttpResponse response) {
HttpEntity entity = response.getEntity(); String charset = EntityUtils.getContentCharSet(entity); String body = null;
try {
body = EntityUtils.toString(entity);
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} return body;
} private static HttpResponse sendRequest(DefaultHttpClient httpclient, HttpUriRequest httpost) {
HttpResponse response = null; try {
response = httpclient.execute(httpost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return response;
} private static HttpPost postForm(String url, Map<String, String> params) { HttpPost httpost = new HttpPost(url);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
// 需要传一个token
//httpost.setHeader("token", "c7a4e021-6527-11e6-96be-fcaa14c3021a1");
Set<String> keySet = params.keySet();
for (String key : keySet) {
nvps.add(new BasicNameValuePair(key, params.get(key)));
} try {
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} return httpost;
} /**
* post方式提交json代码
* @throws Exception
*/
public static String postJson(String url,String json) throws Exception{
//创建默认的httpClient实例.
CloseableHttpClient httpclient = null;
//接收响应结果
CloseableHttpResponse response = null;
String result = "";
//创建httppost
httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader(HTTP.CONTENT_TYPE,"application/json");
//参数
StringEntity se = new StringEntity(json);
se.setContentEncoding("UTF-8");
se.setContentType("application/json");//发送json需要设置contentType
httpPost.setEntity(se);
LOGGER.debug("http post url:{},json:{}",url,json);
response = httpclient.execute(httpPost);
LOGGER.debug("http post result:{}", response);
//解析返结果
HttpEntity entity = response.getEntity();
if(entity != null){
result = EntityUtils.toString(entity, "UTF-8");
}
httpclient.close();
response.close();
return result;
} public static void main(String[] args) throws Exception {
// HttpClient.get("http://localhost/clean/4a/welcome"); // Map<String,String> params = new HashMap<String,String>();
// params.put("empName", "1");
// params.put("empCode", "2");
// HttpClient.post("http://localhost/clean/4a/privilege/check", params); UserBo userBo = new UserBo();
userBo.setEmpCode("3");
userBo.setEmpName("zs");
userBo.setErpUid("4");
userBo.setMip("5");
String jsonStr = JSONObject.toJSONString(userBo); HttpClient.postJson("http://localhost/clean/4a/privilege/check", jsonStr);
} }

  

org.apache.httpcomponents httpclient 发起HTTP JSON请求的更多相关文章

  1. httpclient工具使用(org.apache.httpcomponents.httpclient)

    httpclient工具使用(org.apache.httpcomponents.httpclient) 引入依赖 <dependency> <groupId>org.apac ...

  2. org.apache.httpcomponents.httpclient

    apache org doc :http://hc.apache.org/httpcomponents-client-ga/tutorial/html/fundamentals.html#d5e49 ...

  3. Java使用Apache的HttpClient组件发送https请求

    如果我们直接通过普通的方式对https的链接发送请求,会报一个如下的错误: javax.net.ssl.SSLHandshakeException: sun.security.validator.Va ...

  4. HttpClient发起Http/Https请求工具类

    <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcl ...

  5. org.apache.httpcomponents:httpclient 工具类

    基于httpclient 版本4.4.1 因为http连接需要三次握手,在需要频繁调用时浪费资源和时间 故采用连接池的方式连接 根据实际需要更改  连接池最大连接数.路由最大连接数 另一个需要注意的是 ...

  6. Apache HttpComponents 通过代理发送HTTP请求

    package org.apache.http.examples.client; import org.apache.http.HttpEntity; import org.apache.http.H ...

  7. JAVA中使用Apache HttpComponents Client的进行GET/POST请求使用案例

    一.简述需求 平时我们需要在JAVA中进行GET.POST.PUT.DELETE等请求时,使用第三方jar包会比较简单.常用的工具包有: 1.https://github.com/kevinsawic ...

  8. org.apache.commons.httpclient工具类

    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpcl ...

  9. org.apache.commons.httpclient工具类(封装的HttpUtil)

    import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java ...

随机推荐

  1. hihocoder-1407 后缀数组二·重复旋律2 不重合 最少重复K次

    后缀数组不能直接通过Height得出不重合的公共串.我们可以二分k值,这样连续的Height只要都大于等于k,那他们互相间的k值都大于等于k.每个这样的连续区间查找SA的最大最小值,做差判断是否重合( ...

  2. server2008远程开端口的方法

    今天在通过本地链接远程oracle数据库的时候发现了个问题,建立好连接了,可是一直没连上,后面发现是防火墙的1521的oracle端口没开启.开启的方法可以采用如下方法: 操作:开始→控制面板→Win ...

  3. win10系统安装labelImg

    网站:https://github.com/tzutalin/labelImg conda install pyqt=4 pyrcc4 -o resources.py resources.qrc py ...

  4. Confluence 6 设置你的个人空间主页

    不论你是否正在使用个人空间为沙盒来测试一些内容,组合灯显示是如何工作的,一个能够导航到其他空间和内容的页面,或者一些完全不同的东西.下面一些红能够帮助你在你的个人空间中更加有效的使用和发布信息. 使用 ...

  5. New Year and Old Subsequence CodeForces - 750E (dp矩阵优化)

    大意: 给定字符串, 每次询问区间[l,r]有子序列2017, 无子序列2016所需要删除的最小字符数 转移用矩阵优化一下, 要注意$(\mathbb{Z},min,+)$的幺元主对角线全0, 其余全 ...

  6. lvalue require as increment operand

    #include<stdio.h> #include<stdlib.h> int main() { char source[]="hello"; //创建一 ...

  7. function_exists

    在已经定义的函数列表(包括系统自带的函数和用户自定义的函数)中查找 function_name. 如果 function_name 存在且的确是一个函数就返回 TRUE ,反之则返回 FALSE .

  8. JQuery Tree插件

    转载这个,这个非常的全,有时间可以去学习学习:http://ztreeapi.iteye.com/ http://ztreeapi.iteye.com/blog/2028608

  9. hdu-4819-线段树套线段树

    http://acm.hdu.edu.cn/showproblem.php?pid=4819 给出一个N*N的矩阵,每次询问一个m*m的子矩阵里的floor((maxv+minv)/2)并把中间的元素 ...

  10. 使用navigator.userAgent.toLowerCase()判断移动端类型

    使用navigator.userAgent.toLowerCase()判断移动端类型 判断设备,区分Android,iphone,ipad和其它 var ua = navigator.userAgen ...