HttpClient封装类并接收POST请求传json参数

简介: 今天总结一下对于HttpClient的封装以及使用,便于以后的使用,这里我只封装了接收参数为Json形式的POST与GET两种方法,对于其他的方法大家可以随时留言,一起讨论。

今天总结一下对于HttpClient的封装以及使用,便于以后的使用,这里我只封装了接收参数为Json形式的POST与GET两种方法,对于其他的方法大家可以随时留言,一起讨论。


HttpClientUtils 类:

import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.apache.commons.lang.StringUtils;
public class HttpClientUtils {
  /**
   * 
   * @param url
   *            传递过来的地址
   * @param params
   *            参数信息(参数仅为json格式)
   * @return
   * @throws ClientProtocolException
   * @throws IOException
   */
  public static String doGet(String url, String params) throws ClientProtocolException, IOException {
    // 用来接收响应信息
    String response = null;
    // 创建HttpClient
    HttpClient httpClient = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet(url);
    // 执行请求
    HttpResponse httpResponse = httpClient.execute(httpGet);
    // 判断响应值是否是200
    if (httpResponse.getStatusLine().getStatusCode() == 200) {
      // 请求和响应都成功了
      // 调用getEntity()方法获取到一个HttpEntity实例
      HttpEntity entity = httpResponse.getEntity();
      // 用EntityUtils.toString()这个静态方法将HttpEntity转换成字符串
      // 防止服务器返回的数据带有中文,所以在转换的时候将字符集指定成utf-8就可以了
      response = EntityUtils.toString(entity, "utf-8");
    }
    return response;
  }
  /**
   * 
   * @param url
   *            请求地址
   * @param method
   *            请求方式
   * @param params
   *            元素参数
   * @return
   * @throws ClientProtocolException
   * @throws IOException
   */
  public static String doPost(String url, String method, String params) throws ClientProtocolException, IOException {
    // 用来接收响应信息
        String response = null;
        // 创建HttpClient
        HttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(url);
    //设置请求头为Json形式
    httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
    if (StringUtils.isNotBlank(params)) {
      httpPost.setEntity(new StringEntity(params, "utf-8"));
    }
    HttpResponse httpResponse = httpClient.execute(httpPost);
    if (httpResponse.getStatusLine().getStatusCode() == 200) {
      // 请求和响应都成功了
      // 调用getEntity()方法获取到一个HttpEntity实例
      HttpEntity entity = httpResponse.getEntity();
      // 用EntityUtils.toString()这个静态方法将HttpEntity转换成字符串
      // 防止服务器返回的数据带有中文,所以在转换的时候将字符集指定成utf-8就可以了
      response = EntityUtils.toString(entity, "utf-8");
    }
    return response;
  }
}

调用的时候

String result = HttpClientUtils.doPost(url,testJson);
System.out.println("返回值内容:"+result);

希望能够对大家日后的学习有所帮助!。

相关文章
|
3月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
156 0
|
3月前
|
XML JSON 前端开发
Ajax技术【Ajax技术详解、 Ajax 的使用、Ajax请求、 JSON详解、JACKSON 的使用 】(一)-全面详解(学习总结---从入门到深化)
Ajax技术【Ajax技术详解、 Ajax 的使用、Ajax请求、 JSON详解、JACKSON 的使用 】(一)-全面详解(学习总结---从入门到深化)
58 1
|
1月前
|
JSON 数据格式
糊涂工具类(hutool)post请求设置body参数为json数据
糊涂工具类(hutool)post请求设置body参数为json数据
77 1
|
1月前
|
JSON JavaScript 前端开发
优化你的 HTTP 请求:JSON 与 Form-data 比较
在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:JSON与Form-data。尽管它们的终极目标一致,即数据传输的高效性和可靠性,但它们各自所具备的特点和应用情境却大相径庭,构成了数据传输的两个主要途径。
|
4月前
|
JSON 前端开发 Java
(简易详细)spring boot 使用拦截器 实现拦截前端请求并返回json到前端页面
(简易详细)spring boot 使用拦截器 实现拦截前端请求并返回json到前端页面
110 0
|
3月前
|
JSON PHP 数据格式
|
3月前
|
JSON JavaScript 前端开发
JavaScript 如何对 JSON 数据进行冒泡排序?
JavaScript 如何对 JSON 数据进行冒泡排序?
51 0
|
1月前
|
存储 JSON Apache
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
在最新发布的阿里云数据库 SelectDB 的内核 Apache Doris 2.1 新版本中,我们引入了全新的数据类型 Variant,对半结构化数据分析能力进行了全面增强。无需提前在表结构中定义具体的列,彻底改变了 Doris 过去基于 String、JSONB 等行存类型的存储和查询方式。
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
|
2月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
29 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
3天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
8 0