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月前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
4月前
|
JSON API 数据格式
使用Python发送包含复杂JSON结构的POST请求
使用Python发送包含复杂JSON结构的POST请求
|
4月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
184 2
|
4月前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
331 2
|
5月前
|
JSON C语言 数据格式
Python导出隐马尔科夫模型参数到JSON文件C语言读取
Python导出隐马尔科夫模型参数到JSON文件C语言读取
43 1
|
6月前
|
JSON Java fastjson
Spring Boot返回Json数据及数据封装
本文详细介绍了如何在Spring Boot项目中处理JSON数据的传输 Spring Boot默认使用Jackson作为JSON处理器,并通过`spring-boot-starter-web`依赖自动包含相关组件。文章还展示了如何配置Jackson处理null值,使其转换为空字符串。此外,文章比较了Jackson和FastJson的特点,并提供了FastJson的配置示例,展示了如何处理null值以适应不同应用场景。
|
7月前
|
JSON PHP 数据格式
蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法
在这段代码中,我们首先创建了一个包含我们要发送的数据的数组,并使用 `json_encode`函数将其转换为JSON格式。然后,我们初始化了一个cURL会话,并设置了一些选项,包括POST请求方法、要发送的数据、返回结果和HTTP头部信息。最后,我们执行了cURL请求并关闭了会话。
177 2
|
6月前
|
JSON 数据格式
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解
|
3月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
2月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释

热门文章

最新文章