栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础系列:HttpURLConnection请求GET、POST接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础系列:HttpURLConnection请求GET、POST接口

1 简介

Java请求Http接口常用的方式有三种,如下表

序号工具描述应用案例
1URLConnectionJava原生,java.net.URLConnectionhttps://blog.csdn.net/Xin_101/article/details/122440247
2HttpURLConnectionJava原生,java.net.HttpURLConnectionhttps://blog.csdn.net/Xin_101/article/details/122449254
3httpclient第三方工具,org.apache.httpcomponentshttps://blog.csdn.net/Xin_101/article/details/122449693

本章讲解:HttpURLConnection,该类继承URLConnection。

2 接口 3 测试 3.1 Code
package com.monkey.java_study.web;

import com.google.gson.Gson;
import com.monkey.java_study.common.constant.BooleanConstant;
import com.monkey.java_study.common.constant.WebConstant;
import com.monkey.java_study.common.entity.PageEntity;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;


public class HttpUrlConnectionTest {

    private static final Logger logger = LogManager.getLogger(HttpUrlConnectionTest.class);

    
    public static String doGet(String url) {
        HttpURLConnection urlConnection = null;
        try {
            // 新建URL对象
            URL urlObject = new URL(url);
            // 打开URL连接
            urlConnection = (HttpURLConnection) urlObject.openConnection();
            // 设置请求方法
            urlConnection.setRequestMethod(WebConstant.GET_METHOD);
            // 设置请求头内容类型和字符集类型
            urlConnection.setRequestProperty(WebConstant.CONTENT_TYPE, WebConstant.APPLICATION_JSON);
            // 不使用缓存
            urlConnection.setUseCaches(BooleanConstant.FALSE);
            // 设置连接超时时间,单位:毫秒
            urlConnection.setConnectTimeout(2000);
            // 设置读取数据超时时间,单位:毫秒
            urlConnection.setReadTimeout(2000);

            // 获取响应
            return inputStreamProcess(urlConnection);
        } catch (Exception ex) {
            throw new RuntimeException(ex);
        }
    }

    
    public static String doPost(String url, String params) {
        HttpURLConnection urlConnection = null;
        try {
            // 新建URL对象
            URL urlObject = new URL(url);
            // 打开URL连接
            urlConnection = (HttpURLConnection) urlObject.openConnection();
            // 设置请求方法
            urlConnection.setRequestMethod(WebConstant.POST_METHOD);
            // 设置请求头内容类型和字符集类型
            urlConnection.setRequestProperty(WebConstant.CONTENT_TYPE, WebConstant.APPLICATION_JSON);
            urlConnection.setRequestProperty("accept", "*
    public static String responseProcess(URLConnection urlConnection, String params) {
        try (PrintWriter printWriter = new PrintWriter(urlConnection.getOutputStream())) {
            // 发送请求参数
            printWriter.print(params);
            // 刷新输出流
            printWriter.flush();
            return inputStreamProcess(urlConnection);
        } catch (Exception ex) {
            throw new RuntimeException(ex);
        }
    }

    
    public static String inputStreamProcess(URLConnection urlConnection) {
        try (InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))) {
            String line;
            StringBuilder response = new StringBuilder();
            while ((line = bufferedReader.readLine()) != null) {
                response.append(line);
            }
            return response.toString();
        } catch (Exception ex) {
            throw new RuntimeException(ex);
        }
    }

    public static void main(String[] args) {
        // GET:请求
        String getUrl = "http://localhost:9121/api/v1/mongodb/read?userId=0x001";
        String getResponse = doGet(getUrl);
        logger.info(">>>>>>>>>Get response:{}", getResponse);
        // POST:请求
        String postUrl = "http://localhost:9121/api/v1/mongodb/page";
        // 入参实体
        PageEntity pageEntity = new PageEntity(1, 2);
        Gson gson = new Gson();
        // 实体转JSON字符串
        String jsonString = gson.toJson(pageEntity);
        String postResponse = doPost(postUrl, jsonString);
        logger.info(">>>>>>>>>>Post response:{}", postResponse);
    }
}
3.2 测试结果

4 小结

HttpURLConnection发送POST请求:参数使用PrintWriter;POST参数传入时转换为JSON字符串;可配置请求方法、连接超时时间、读取超时时间。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703532.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号