前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java发送请求网络请求

java发送请求网络请求

作者头像
jaychou
发布于 2022-12-26 06:48:03
发布于 2022-12-26 06:48:03
1.8K00
代码可运行
举报
文章被收录于专栏:全栈开发笔记全栈开发笔记
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
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.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

/**
 * <p>发送请求</p>
 *
 * @author : LiYu
 * @date : 2020-10-15 15:13
 **/
@Slf4j
public class HttpClientUtils {

    private static RequestConfig requestConfig = null;

    static {
        // 设置请求和传输超时时间
        requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();
    }

    /**
     * post请求传输json参数
     *
     * @param url
     *            url地址
     * @param jsonParam
     *            参数
     * @return
     */
    public static JSONObject httpPost(String url, JSONObject jsonParam) {
        // post请求返回结果
        CloseableHttpClient httpClient = HttpClients.createDefault();
        JSONObject jsonResult = null;
        HttpPost httpPost = new HttpPost(url);
        // 设置请求和传输超时时间
        httpPost.setConfig(requestConfig);
        try {
            if (null != jsonParam) {
                // 解决中文乱码问题
                StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");
                entity.setContentEncoding("UTF-8");
                entity.setContentType("application/json");
                httpPost.setEntity(entity);
            }
            CloseableHttpResponse result = httpClient.execute(httpPost);
            // 请求发送成功,并得到响应
            if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                String str = "";
                try {
                    // 读取服务器返回过来的json字符串数据
                    str = EntityUtils.toString(result.getEntity(), "utf-8");
                    // 把json字符串转换成json对象
                    jsonResult = JSONObject.parseObject(str);
                } catch (Exception e) {
                    log.error("post请求提交失败:" + url, e);
                }
            }
        } catch (IOException e) {
            log.error("post请求提交失败:" + url, e);
        } finally {
            httpPost.releaseConnection();
        }
        return jsonResult;
    }

    /**
     * post请求传输String参数 例如:name=Jack&sex=1&type=2
     * Content-type:application/x-www-form-urlencoded
     *
     * @param url
     *            url地址
     * @param strParam
     *            参数
     * @return
     */
    public static JSONObject httpPost(String url, String strParam) {
        // post请求返回结果
        CloseableHttpClient httpClient = HttpClients.createDefault();
        JSONObject jsonResult = null;
        HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(requestConfig);
        try {
            if (null != strParam) {
                // 解决中文乱码问题
                StringEntity entity = new StringEntity(strParam, "utf-8");
                entity.setContentEncoding("UTF-8");
                entity.setContentType("application/x-www-form-urlencoded");
                httpPost.setEntity(entity);
            }
            CloseableHttpResponse result = httpClient.execute(httpPost);
            // 请求发送成功,并得到响应
            if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                String str = "";
                try {
                    // 读取服务器返回过来的json字符串数据
                    str = EntityUtils.toString(result.getEntity(), "utf-8");
                    // 把json字符串转换成json对象
                    jsonResult = JSONObject.parseObject(str);
                } catch (Exception e) {
                    log.error("post请求提交失败:" + url, e);
                }
            }
        } catch (IOException e) {
            log.error("post请求提交失败:" + url, e);
        } finally {
            httpPost.releaseConnection();
        }
        return jsonResult;
    }

    /**
     * 发送get请求
     *
     * @param url
     *            路径
     * @return
     */
    public static JSONObject httpGet(String url) {
        // get请求返回结果
        JSONObject jsonResult = null;
        CloseableHttpClient client = HttpClients.createDefault();
        // 发送get请求
        HttpGet request = new HttpGet(url);
        request.setConfig(requestConfig);
        try {
            CloseableHttpResponse response = client.execute(request);

            // 请求发送成功,并得到响应
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                // 读取服务器返回过来的json字符串数据
                HttpEntity entity = response.getEntity();
                String strResult = EntityUtils.toString(entity, "utf-8");
                // 把json字符串转换成json对象
                jsonResult = JSONObject.parseObject(strResult);
            } else {
                log.error("get请求提交失败:" + url);
            }
        } catch (IOException e) {
            log.error("get请求提交失败:" + url, e);
        } finally {
            request.releaseConnection();
        }
        return jsonResult;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年9月5日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java爬虫下载千张美女图片!
目的 爬取搜狗图片上千张美女图片并下载到本地 准备工作 爬取地址:https://pic.sogou.com/pics?query=%E7%BE%8E%E5%A5%B3 分析 打开上面的地址,按F1
Java团长
2021/03/12
1.2K0
Java爬虫下载千张美女图片!
Java调用第三方接口示范
【1】准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的restTemplate来调用,上面有调用接口的方法【分为Get和Post方式的有参和无参调用】:
Java廖志伟
2021/01/29
1.4K0
CloseableHttpClient 连接超时导致XxlJob调度阻塞,影响调度任务的执行
CloseableHttpClient 连接超时导致XxlJob调度阻塞,影响调度任务的执行
oktokeep
2024/10/09
2470
java爬虫带你爬天爬地爬人生,爬新浪
HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本。它的主要功能有:
Java知音
2018/09/26
9530
java爬虫带你爬天爬地爬人生,爬新浪
http请求工具类 HttpClient4Util
1、依赖 <!-- httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.6</version> </dependency> 2、HttpClient4Util http请求工具类 点击查看代码 import lombok.extern.slf4j.Slf4j; import org.apach
化羽羽
2022/11/12
5310
HttpClient技术
HttpClient 一、介绍 简介 坐标 二、应用 发送get请求不带参数 发送get请求带参数 发送post请求不带参数 发送post请求带参数 发送post请求带json类型参数 三、HTTPClient工具类的使用 工具类代码 一、介绍 简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、 功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 HTTP 协议可能是现在 Inter
时间静止不是简史
2020/07/25
1.7K0
HTTP 请求工具类
坐标 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.1</version> <classifier>jdk15</classifier> </dependency> 工具类 package com.baomidou.springboot.uti
高大北
2022/06/14
9550
HttpClient使用不当,服务挂了,是时候系统学习一下了
事件一:联调微信支付接口,用到HttpClient,花时间整理了一番。如果有一篇文章,读一读就可以掌握HttpClient 80%的内容,再有可以直接用的Demo,下次再遇到是不是就可以非常容易集成了?这篇便是这篇文章的目标之一。
程序新视界
2021/12/20
1.8K0
Apache httpClient+Jackson学习笔记
HTMLUnit可以用来做爬虫的。Jsoup比他跟简洁。使用python语言进行爬虫.开箱即用。
全栈程序员站长
2022/06/30
2.5K0
Apache httpClient+Jackson学习笔记
java使用httpclient调用第三方接口
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141981.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/01
9200
日常开发必备神器 HttpUtil 分享(超详细)
最近在工作中需要在后台调用各种上传、下载、以及第三方服务接口,经过研究决定使用 HttpClient,自己封装了一个 HttpClient 工具类,简单轻松的实现get、post、put、delete 以及上传、下载请求,在此分享给大家。
Java极客技术
2022/12/04
3.1K1
HttpClient-Get请求、Post请求
有参数,请求链接为url(http://localhost:8083/getdemo2)
wangmcn
2022/07/25
2.9K0
HttpClient-Get请求、Post请求
银商TMS平台秘钥下载工具
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package javaapplication3.utils; import com.alibaba.fastjson.JSON; impo
杨永贞
2020/08/04
7240
HttpClient-Json格式、设置超时
Json格式、设置超时 目录 1、Json格式 2、设置超时 1、Json格式 1、创建Json类。 发送数据将数据类型转为Json格式。 接收数据将数据类型转为Json格式。 脚本代码: package com.test.demo; import java.io.IOException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHtt
wangmcn
2022/07/25
6290
HttpClient-Json格式、设置超时
求助-钉钉开发异步消息失败
源码: 1.AsyncMessage.java package com.ray.dingtalk.model.message.asyncsend; /**@desc : * * 参考文档地
shirayner
2018/08/10
8391
【HttpClientUtil完整的工具类】
package com.test.test.utils; import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.httpclient.HttpStatus; import org.apache.http.NameValuePair; import org.apa
用户5640963
2019/07/25
9.2K0
HttpClient-Header、Cookie
内容格式设定为Json格式("content-type", "application/json")、自定义Header("Self-Header", "MySelfHeader")。
wangmcn
2022/07/25
6590
HttpClient-Header、Cookie
Java发送Http请求(HttpClient)
HttpClient 是Apache HttpComponents 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是Apache HttpComponents 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
ha_lydms
2023/08/09
1K0
封装httpClient工具类进行get、post、put、delete的http接口请求,可添加请求头与参数,支持多线程
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157763.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/18
2.6K0
Java发送HTTP 请求
请求http的Demo是个人亲测过,目前该方式已经在线上运行着。因为是http请求,所有发送post 和get 请求的demo都有在下方贴出,包括怎么测试,大家可直接 copy到自己的项目中使用。
胖虎
2019/06/26
2.4K0
相关推荐
Java爬虫下载千张美女图片!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档