java中使用hutool调用get请求,post请求

这篇具有很好参考价值的文章主要介绍了java中使用hutool调用get请求,post请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、hutool工具包实现

1、get请求

// url:链接地址,params:填充在url中的参数, useProxy:是否使用代理
// proxyHost:代理地址, proxyPort:代理端口号
public String httpGet(String url, String params, String useProxy) {
        String requestUrl = url;
        if (StringUtils.isNotBlank(params)) {
            requestUrl = url + "?" + params;
        }
        String respData = null;
        log.info("httpGet req is 【{}】", params);
        HttpRequest httpRequest = HttpRequest.get(requestUrl).timeout(socketTimeout).header("token", 
                "application/json");
        if ("Y".equalsIgnoreCase(useProxy)) {
            log.info(String.format("使用代理"));
            httpRequest.setProxy(new Proxy(Proxy.Type.HTTP,
                    new InetSocketAddress(proxyHost, Integer.parseInt(proxyPort))));
        }
        respData = httpRequest.execute().body();
        log.info(String.format("HttpsUtil:httpGet | 请求信息:%s | 响应信息: %s", httpRequest.getUrl(), respData));
        return respData;
    }

2、post请求

    
// url:链接地址,params:填充在url中的参数, sendBodyData:body, useProxy:是否使用代理
// proxyHost:代理地址, proxyPort:代理端口号
public String httpPost(String url, String params, String sendBodyData, String useProxy) {
        String requestUrl = url;
        if (StringUtils.isNotBlank(params)) {
            requestUrl = url + "?" + params;
        }
        String respData = null;
        log.info("httpPost req is 【{}】", sendBodyData);
        HttpRequest httpRequest = HttpRequest.post(requestUrl).timeout(socketTimeout).header("Content-Type", "application/json");
        if ("Y".equalsIgnoreCase(useProxy)) {
            log.info(String.format("使用代理"));
            httpRequest.setProxy(new Proxy(Proxy.Type.HTTP,
                    new InetSocketAddress(proxyHost, Integer.parseInt(proxyPort))));
        }
        if (StringUtils.isNotBlank(sendBodyData)) {
            httpRequest.body(sendBodyData);
        }
        respData = httpRequest.execute().body();
        log.info(String.format("HttpsUtil:httpPost | 请求信息:%s | 响应信息: %s", httpRequest.getUrl(), respData));
        return respData;
    }

二、java net实现

1、java中http协议调用get请求

package com.bjbn.app.tianfu.mq.util;



import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;


public class GetMessage {

    public static String getHttpRequestData(String data) {


        // 首先抓取异常并处理
        String returnString = "1";
        try{
            // 代码实现以GET请求方式为主,POST跳过
            /** 1 GET方式请求数据 start*/
            StringBuilder sb = new StringBuilder();
            String urlP = "http://localhost:8500/main/dataAnalysis?data=";
            sb.append(urlP);
            data = URLEncoder.encode(data,"UTF-8");
            sb.append(data);


            // 1  创建URL对象,接收用户传递访问地址对象链接
            URL url = new URL(sb.toString());

            // 2 打开用户传递URL参数地址
            HttpURLConnection connect = (HttpURLConnection) url.openConnection();

            // 3 设置HTTP请求的一些参数信息
            connect.setRequestMethod("GET"); // 参数必须大写
            connect.connect();


            // 4 获取URL请求到的数据,并创建数据流接收
            InputStream isString = connect.getInputStream();

            // 5 构建一个字符流缓冲对象,承载URL读取到的数据
            BufferedReader isRead = new BufferedReader(new InputStreamReader(isString));

            // 6 输出打印获取到的文件流
            String str = "";
            while ((str = isRead.readLine()) != null) {
                str = new String(str.getBytes(),"UTF-8"); //解决中文乱码问题
//          System.out.println("文件解析打印:");
//          System.out.println(str);
                returnString = str;
            }

            // 7 关闭流
            isString.close();
            connect.disconnect();

            // 8 JSON转List对象
            // do somthings

        }catch(Exception e){
            e.printStackTrace();
        }

        return returnString;
    }

    public static void main(String[] args) {
        String data = "111111";
        String httpRequestData = getHttpRequestData(data);
        System.out.println(httpRequestData);

    }
}

2、java中https协议调用get请求文章来源地址https://www.toymoban.com/news/detail-510383.html

 
 
import javax.net.ssl.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
 
public class HttpUtils1 {
	private static final String ENCODING = "UTF-8";
 
 
	public static void main(String args[]) {
 
		// get方式调用接口 
		String resultString = httpGet("https://xxxxx?systemCode=1&apiCode=1&accessCode=xxxx");
 
		// 获取接口信息
		System.out.println(resultString);
	}
 
 
	final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
		public boolean verify(String hostname, SSLSession session) {
			return true;
		}
	};
	/**
	 * Trust every server - dont check for any certificate
	 */
	private static void trustAllHosts() {
		final String TAG = "trustAllHosts";
		// Create a trust manager that does not validate certificate chains
		TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
			public X509Certificate[] getAcceptedIssuers() {
				return new X509Certificate[] {};
			}
			public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
			}
			public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
			}
		} };
		// Install the all-trusting trust manager
		try {
			SSLContext sc = SSLContext.getInstance("TLS");
			sc.init(null, trustAllCerts, new java.security.SecureRandom());
			HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
 
	public static String httpGet(String httpUrl) {
		BufferedReader input = null;
		StringBuilder sb = null;
		URL url = null;
		HttpURLConnection con = null;
		try {
			url = new URL(httpUrl);
			try {
				// trust all hosts
				trustAllHosts();
				HttpsURLConnection https = (HttpsURLConnection)url.openConnection();
				if (url.getProtocol().toLowerCase().equals("https")) {
					https.setHostnameVerifier(DO_NOT_VERIFY);
					con = https;
				} else {
					con = (HttpURLConnection)url.openConnection();
				}
				input = new BufferedReader(new InputStreamReader(con.getInputStream()));
				sb = new StringBuilder();
				String s;
				while ((s = input.readLine()) != null) {
					sb.append(s).append("\n");
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		} finally {
			// close buffered
			if (input != null) {
				try {
					input.close();
				} catch (IOException e) {
					e.printStackTrace();
				}}
 
			// disconnecting releases the resources held by a connection so they may be closed or reused
			if (con != null) {
				con.disconnect();
			}
		}
		return sb == null ? null : sb.toString();
	}
}

到了这里,关于java中使用hutool调用get请求,post请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用HuTool的Http工具发送post传递中文参数,请求会乱码的解决方法

    Hutool 是一款功能丰富、易用的Java工具类库,我们在工作中经常会使用它的各种类库方法简化我们的开发,其中我们甚至能通过它的Http工具类直接发送http的各种请求,下面来介绍一下发送post请求时参数中有中文出现乱码的解决方法。 这样就不会造成请求参数出现乱码问题

    2024年02月01日
    浏览(31)
  • hutool Http 工具发送POST请求的几种方式。

    Hutool是一个Java工具库,提供了丰富的功能模块,包括HTTP请求发送。以下是使用Hutool发送POST请求的几种方式: 使用HttpUtil.post方法: 使用HttpUtil.post方法可以发送简单的POST请求,示例如下: 使用HttpUtil.createPost方法: 使用HttpUtil.createPost方法可以创建一个HttpPost对象,然后设置

    2024年02月13日
    浏览(29)
  • hutool Http 工具发送POST请求的几种方式

            目录 依赖 🍊Maven 🍐Gradle 实践 hutool源码 hutool调用实践 其它自定义项         本质上,HttpUtil中的get和post工具方法都是HttpRequest对象的封装,因此如果想更加灵活操作Http请求,可以使用HttpRequest。今天咱们就列举一下hutool工具中常用的几种发送post请求的方式。

    2024年02月08日
    浏览(42)
  • Java 中使用 OkHttpClent 请求接口 get方式 post方式

    学习记录,不喜勿喷 一般在Java平台上,我们会使用Apache HttpClient作为Http客户端,用于发送 HTTP 请求,并对响应进行处理。比如可以使用http客户端与第三方服务(如SSO服务)进行集成,当然还可以爬取网上的数据等。OKHttp与HttpClient类似,也是一个Http客户端,提供了对 HTTP/2 和

    2024年02月12日
    浏览(44)
  • 糊涂工具类(hutool)post请求设置body参数为json数据

    大家好,我是雄雄,欢迎关注微信公众号 雄雄的小课堂 今天介绍一个案例,糊涂工具类(hutool)post请求设置body参数为json数据,刚开始写的总是报错,下面是正确的代码: 重点是下面的这行代码:

    2024年02月16日
    浏览(36)
  • spring boot 单元测试JUnit5使用MockMvc调用get请求,post请求,设置head请求头,解析返回值json和字符串

    spring boot 单元测试JUnit5使用MockMvc调用get/post接口 源码地址:https://gitcode.net/qq_39339588/springboot.git 1. 先准备一份controller,一会儿供测试调用 2. MockMvc测试调用get请求接口 两个注解说明 @SpringBootTest // 加测试类上,标明是测试的类 @AutoConfigureMockMvc // 支持对MockMvc对象的注入和配置,

    2024年02月14日
    浏览(41)
  • 使用hutool发送POST请求

    之前使用Java程序发送请求都是使用的HttpURLConnection,不太方便,可以使用hutool封装好的方法。 返回结果包括响应头和响应体两部分,其中响应体是后端通过@ResponseBody返回的数据;响应头包含一些其他信息,比如cookie。 hutool参考文档

    2024年02月11日
    浏览(44)
  • 再谈http请求调用(Post与Get),项目研发的核心一环

    支持.Net Core(2.0及以上)与.Net Framework(4.0及以上) 【目录】 前言 Post请求 Get请求 与其它工具的比较   1【前言】 http请求调用是开发中经常会用到的功能。 在内,调用自有项目的Web Api等形式接口时会用到;在外,调用一些第三方功能接口时,也会用到,因为,这些第三方功能往

    2024年02月08日
    浏览(36)
  • java使用hutool工具类发送http或者https请求太香啦

    我们使用java内置的http工具实现远程调用的时候,都是用try catch包一堆代码,巨难受,今天看见有人使用hutool工具类那是天简单了呀,具体操作如下: 1,引入依赖 2, 如果不需要设置其他什么头信息,代码: 如果是https请求直接换url里面的http就行 返回信息格式: {\\\"code\\\":200

    2024年02月14日
    浏览(27)
  • Java发送HTTP GET/POST请求

    在这篇文章中,将向你展示四种发送Http的GET/POST的例子,如下: 在Java11的java.net.http.*包中,有一个HttpClient类可以完成HTTP请求。 Java11HttpClientExample.java 本例使用HttpURLConnection(http)和HttpsURLConnection(https) HttpURLConnectionExample.java 使用Apache HttpClient完成HTTP请求的发送需要添加Maven依赖

    2024年02月13日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包