java中httpclient封装post请求和get的请求实例

下面是“java中httpclient封装post请求和get的请求实例”的完整攻略:

一、介绍httpclient

HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议,比如1.1和RFC2616。HttpClient实现了所有HTTP方法(GET、POST、PUT、DELETE、HEAD、OPTIONS等),还支持HTTPS(基于SSL协议)。

HttpClient连接管理的机制及连接池功能都是Apache httpclient独有的功能。

二、httpclient封装get请求实例

/**
 * HttpClient 进行 GET 请求
 */
public static String doGet(String url, Map<String, String> headers) throws Exception {

    //创建httpClient实例,获取HttpClient对象
    CloseableHttpClient httpClient = HttpClientBuilder.create().build();

    try {
        //创建httpGET请求
        HttpGet httpGet = new HttpGet(url);

        //设置headers
        setHeader(headers, httpGet);

        //执行http GET请求
        CloseableHttpResponse httpResponse = httpClient.execute(httpGet);

        try {
            //获取响应内容
            HttpEntity entity = httpResponse.getEntity();

            //将响应内容转换成String类型
            String responseBody = EntityUtils.toString(entity, Charset.forName("UTF-8"));

            //打印响应内容
            System.out.println("responseBody: " + responseBody);

            return responseBody;
        } finally {
            //释放连接
            httpResponse.close();
        }
    } finally {
        //关闭httpClient
        httpClient.close();
    }
}

private static void setHeader(Map<String, String> headers, HttpRequestBase httpRequestBase) {
    if (headers == null || headers.isEmpty()) {
        return;
    }

    for (Map.Entry<String, String> entry : headers.entrySet()) {
        httpRequestBase.setHeader(entry.getKey(), entry.getValue());
    }
}

三、httpclient封装post请求实例

/**
 * httpClient 进行 POST 请求
 */
public static String doPost(String url, Map<String, String> headers, Map<String, String> params) throws Exception {

    //创建httpClient实例,获取HttpClient对象
    CloseableHttpClient httpClient = HttpClientBuilder.create().build();

    try {
        //创建httpPost请求
        HttpPost httpPost = new HttpPost(url);

        //设置headers
        setHeader(headers, httpPost);

        //设置参数
        setParams(params, httpPost);

        //执行http Post请求
        CloseableHttpResponse httpResponse = httpClient.execute(httpPost);

        try {
            //获取响应内容
            HttpEntity entity = httpResponse.getEntity();

            //将响应内容转换成String类型
            String responseBody = EntityUtils.toString(entity, Charset.forName("UTF-8"));

            //打印响应内容
            System.out.println("responseBody: " + responseBody);

            return responseBody;
        } finally {
            //释放连接
            httpResponse.close();
        }
    } finally {
        //关闭httpClient
        httpClient.close();
    }
}

private static void setParams(Map<String, String> params, HttpPost httpPost) throws UnsupportedEncodingException {
    if (params == null || params.isEmpty()) {
        return;
    }

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    for (Map.Entry<String, String> entry : params.entrySet()) {
        nameValuePairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
    }

    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
}

以上就是我对“java中httpclient封装post请求和get的请求实例”的完整攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中httpclient封装post请求和get的请求实例 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • pythonsizeof函数

    当然,我可以为您提供有关“python sizeof函数”的攻略,以下是详细说明: Python sizeof函数 在Python中,sizeof()函数用于返回对象字节大小。该函数可以用于任何对象,包括内置类型和用户定义的对象。在本教程中,我们将介绍如何使用sizeof()函数以及它的用法。 语法 sizeof()函数的语法如下: import sys s…

    other 2023年5月7日
    00
  • ie8/9下Activex控件无法加载的两种解决方法

    下面我将为大家详细讲解“ie8/9下Activex控件无法加载的两种解决方法”。 原因分析 在IE8/9浏览器下,Activex控件无法正常加载的问题主要有以下两个原因: 安全设置过高导致浏览器屏蔽了Activex控件。 IE8/9只能使用针对32位操作系统的Activex控件,而无法使用64位Activex控件。 解决方法 方法一:修改IE浏览器的安全设置…

    other 2023年6月25日
    00
  • gin框架中文文档

    gin框架中文文档 Gin是一种高性能的Go语言Web框架,由于其高性能和简单易用,近年来在开发领域中越来越受欢迎。Gin框架的中文文档对于学习和使用Gin框架的开发者来说是非常重要的参考资料。本文将介绍Gin框架的中文文档,并对其内容和质量进行评价。 Gin框架中文文档概述 Gin框架中文文档由Gin框架官方团队翻译整理,提供了Gin框架完整的API文档、…

    其他 2023年3月29日
    00
  • 详解JavaScript中的原型和原型链

    首先,了解JavaScript中的原型和原型链是非常重要的,因为它是面向对象编程的核心之一。下面来详细讲解。 一、原型 概念 JavaScript中,每个函数都有一个prototype属性,称为原型。原型是一个对象,包含了函数的所有属性和方法。当使用new操作符创建对象时,这个对象就会继承自原型。如果对象本身没有这个属性或方法,它会在原型对象中查找,以得到它…

    other 2023年6月26日
    00
  • 手机内存空间不足怎么清理rom和ram

    手机内存空间不足的清理攻略 当手机的内存空间不足时,我们可以采取一些措施来清理ROM(存储空间)和RAM(运行内存),以释放更多的空间。下面是一个详细的攻略,包含了清理ROM和RAM的方法和示例说明。 清理ROM(存储空间) 删除不需要的应用程序:首先,检查手机上安装的应用程序,并删除那些不再需要或很少使用的应用。这将释放存储空间并提高手机的性能。例如,如果…

    other 2023年7月31日
    00
  • win10系统不显示文件名和菜单项的两种解决方法

    下面我来详细讲解“win10系统不显示文件名和菜单项的两种解决方法”的完整攻略。本攻略分为以下两部分: 一、win10系统不显示文件名的解决方法 1. 打开文件夹选项- 在Windows资源管理器中,点击“查看”选项卡;- 然后在页面底部找到“选项”按钮,点击;- 弹出“文件夹选项”窗口后,点击“查看”选项卡;- 在列表中找到“隐藏已知文件类型的扩展名”选项…

    other 2023年6月26日
    00
  • SharedWorker 多页面相互通信示例详解

    让我来详细讲解一下“SharedWorker 多页面相互通信示例详解”。 什么是 SharedWorker SharedWorker 是一个 JavaScript API,其允许运行在同一源下的多个脚本访问共享的 Worker(线程)实例。 sharedWorker 通过名称创建,也就是说,一个相同名称的 sharedWorker 可以被多个页面/脚本访问,…

    other 2023年6月27日
    00
  • 方法集锦,怎样查找对方的IP地址?

    方法集锦:如何查找对方的IP地址? 1. 通过电子邮件头部信息查找IP地址 当你收到一封电子邮件时,你可以通过查看邮件头部信息来获取发送者的IP地址。以下是查找IP地址的步骤: 打开你的电子邮件客户端,并选择要查看的邮件。 在邮件中,查找一个名为“邮件头”、“原始邮件”或类似的选项。这个选项通常在邮件的菜单栏或设置中。 一旦找到邮件头部信息,复制整个邮件头部…

    other 2023年7月30日
    00
合作推广
合作推广
分享本页
返回顶部