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);

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

相关文章
|
7月前
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
7月前
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——封装统一返回的数据结构
本文介绍了在Spring Boot中封装统一返回的数据结构的方法。通过定义一个泛型类`JsonResult<T>`,包含数据、状态码和提示信息三个属性,满足不同场景下的JSON返回需求。例如,无数据返回时可设置默认状态码"0"和消息"操作成功!",有数据返回时也可自定义状态码和消息。同时,文章展示了如何在Controller中使用该结构,通过具体示例(如用户信息、列表和Map)说明其灵活性与便捷性。最后总结了Spring Boot中JSON数据返回的配置与实际项目中的应用技巧。
566 0
|
3月前
|
JSON Java 数据格式
Spring Boot返回Json数据及数据封装
在Spring Boot中,接口间及前后端的数据传输通常使用JSON格式。通过@RestController注解,可轻松实现Controller返回JSON数据。该注解是Spring Boot新增的组合注解,结合了@Controller和@ResponseBody的功能,默认将返回值转换为JSON格式。Spring Boot底层默认采用Jackson作为JSON解析框架,并通过spring-boot-starter-json依赖集成了相关库,包括jackson-databind、jackson-datatype-jdk8等常用模块,简化了开发者对依赖的手动管理。
417 3
|
12月前
|
XML JSON 安全
SSM:请求参数与回显&json
本文介绍了请求参数处理、过滤器和拦截器的使用方法。包括如何通过 `@RequestParam` 和 `@ModelAttribute` 绑定请求参数,使用 Lombok 简化实体类开发,实现过滤器处理字符编码,以及配置拦截器进行请求前后的处理。同时,还展示了如何使用 `@ResponseBody` 返回 JSON 数据,并解决了 JSON 编码问题。
144 0
|
10月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
221 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
1月前
|
机器学习/深度学习 JSON 监控
淘宝拍立淘按图搜索与商品详情API的JSON数据返回详解
通过调用taobao.item.get接口,获取商品标题、价格、销量、SKU、图片、属性、促销信息等全量数据。
|
27天前
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
1月前
|
JSON API 数据格式
干货满满!淘宝商品详情数据,淘宝API(json数据返回)
淘宝商品详情 API 接口(如 taobao.item.get)的 JSON 数据返回示例如下
|
6天前
|
JSON 中间件 Java
【GoGin】(3)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法
我们在正常注册中间件时,会打断原有的运行流程,但是你可以在中间件函数内部添加Next()方法,这样可以让原有的运行流程继续执行,当原有的运行流程结束后再回来执行中间件内部的内容。​ c.Writer.WriteHeaderNow()还会写入文本流中。可以看到使用next后,正常执行流程中并没有获得到中间件设置的值。接口还提供了一个可以修改ContentType的方法。判断了传入的状态码是否符合正确的状态码,并返回。在内部封装时,只是标注了不同的render类型。再看一下其他返回的类型;
85 3
|
6天前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
123 3

热门文章

最新文章