Java工具类之在服务器发送HTTP请求

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80880234 使用之前首先添加maven依赖或者是jar包 org.
版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80880234


使用之前首先添加maven依赖或者是jar包

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

下面给出工具类代码,一个简单发送Get和Post请求的例子

public class HttpUtils {
   
    /*
     *发送简单post请求
     */
    public static JSONObject post(String url) {
        HttpPost post = new HttpPost(url);
        return getResult(post);
    }
    /*
     *发送带Header的post请求
     */
    public static JSONObject post(String url, Map<String, String> map) {
        HttpPost post = new HttpPost(url);
        if (!map.isEmpty()) {
            Set<Map.Entry<String, String>> entrys = map.entrySet();
            for (Map.Entry<String, String> entry : entrys) {
                post.setHeader(entry.getKey(), entry.getValue());
            }
        }
        return getResult(post);
    }
    /*
     *发送带Header的get请求
     */
    public static JSONObject get(String url, Map<String, String> map) {
        HttpGet get = new HttpGet(url);
        if (!map.isEmpty()) {
            Set<Map.Entry<String, String>> entrys = map.entrySet();
            for (Map.Entry<String, String> entry : entrys) {
                get.setHeader(entry.getKey(), entry.getValue());
            }
        }
        return getResult(get);

    }
    /*
     *发送简单的get请求
     */
    public static JSONObject get(String url) {
        HttpGet get = new HttpGet(url);
        return getResult(get);

    }
    /*
     *发送请求方法,请求响应为JSONObject
     */
    private static JSONObject getResult(HttpRequestBase requestBase) {
        CloseableHttpClient httpClient = HttpClients.createDefault();

        String result = null;
        try {
            result = EntityUtils.toString(httpClient.execute(requestBase).getEntity());
            httpClient.close();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (ClientProtocolException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        } finally {
            return new JSONObject(JSON.parseObject(result));
        }
    }
    /*
     *当请求响应为String时
     */
    public static String getString(String url) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet get = new HttpGet(url);
        String result = null;
        try {
            result = EntityUtils.toString(httpClient.execute(get).getEntity());
            httpClient.close();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (ClientProtocolException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        } finally {
            return result;
        }
    }
}

使用之前首先添加maven依赖或者是jar包

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

下面给出工具类代码,一个简单发送Get和Post请求的例子

public class HttpUtils {
   
    /*
     *发送简单post请求
     */
    public static JSONObject post(String url) {
        HttpPost post = new HttpPost(url);
        return getResult(post);
    }
    /*
     *发送带Header的post请求
     */
    public static JSONObject post(String url, Map<String, String> map) {
        HttpPost post = new HttpPost(url);
        if (!map.isEmpty()) {
            Set<Map.Entry<String, String>> entrys = map.entrySet();
            for (Map.Entry<String, String> entry : entrys) {
                post.setHeader(entry.getKey(), entry.getValue());
            }
        }
        return getResult(post);
    }
    /*
     *发送带Header的get请求
     */
    public static JSONObject get(String url, Map<String, String> map) {
        HttpGet get = new HttpGet(url);
        if (!map.isEmpty()) {
            Set<Map.Entry<String, String>> entrys = map.entrySet();
            for (Map.Entry<String, String> entry : entrys) {
                get.setHeader(entry.getKey(), entry.getValue());
            }
        }
        return getResult(get);

    }
    /*
     *发送简单的get请求
     */
    public static JSONObject get(String url) {
        HttpGet get = new HttpGet(url);
        return getResult(get);

    }
    /*
     *发送请求方法,请求响应为JSONObject
     */
    private static JSONObject getResult(HttpRequestBase requestBase) {
        CloseableHttpClient httpClient = HttpClients.createDefault();

        String result = null;
        try {
            result = EntityUtils.toString(httpClient.execute(requestBase).getEntity());
            httpClient.close();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (ClientProtocolException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        } finally {
            return new JSONObject(JSON.parseObject(result));
        }
    }
    /*
     *当请求响应为String时
     */
    public static String getString(String url) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet get = new HttpGet(url);
        String result = null;
        try {
            result = EntityUtils.toString(httpClient.execute(get).getEntity());
            httpClient.close();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (ClientProtocolException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        } finally {
            return result;
        }
    }
}

相关文章
|
22天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
58 9
|
26天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
102 3
|
6天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
45 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
1月前
|
缓存 前端开发 API
|
2月前
|
数据采集 前端开发 算法
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
本文介绍了如何使用 Python 的 `requests` 库应对复杂的 HTTP 请求场景,包括 Spider Trap(蜘蛛陷阱)、SESSION 访问限制和请求频率限制。通过代理、CSS 类链接数控制、多账号切换和限流算法等技术手段,提高爬虫的稳定性和效率,增强在反爬虫环境中的生存能力。文中提供了详细的代码示例,帮助读者掌握这些高级用法。
104 1
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
|
25天前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
36 3
|
5天前
|
Web App开发 网络安全 数据安全/隐私保护
Lua中实现HTTP请求的User-Agent自定义
Lua中实现HTTP请求的User-Agent自定义
|
1月前
|
前端开发 JavaScript Java
如何捕获和处理HTTP GET请求的异常
如何捕获和处理HTTP GET请求的异常
|
1月前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
1月前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】

热门文章

最新文章