一文读懂JAVA中HttpURLConnection的用法

一文读懂JAVA中HttpURLConnection的用法

HttpURLConnection是Java中用于远程调用HTTP服务的类,支持HTTP/HTTPS协议,并提供了GET、POST、PUT等常见HTTP方法。

HttpURLConnection的使用步骤

  1. 创建一个URL对象,指向需要访问的URL地址。
  2. 打开连接对象,并设置请求方法,设置是否允许输出,设置是否允许输入,设置是否使用缓存等。
  3. 发送请求,并读取返回数据。
  4. 关闭连接。

示例1:使用HttpURLConnection发送GET请求

try {
    URL url = new URL("https://www.example.com");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");

    if (connection.getResponseCode() == 200) {
        InputStream in = connection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        reader.close();
    } else {
        System.out.println("请求失败!");
    }
} catch (IOException e) {
    e.printStackTrace();
}

以上代码通过HttpURLConnection发送了一个GET请求,并输出了返回的数据。

示例2:使用HttpURLConnection发送POST请求

try {
    URL url = new URL("https://www.example.com");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);// 允许输出数据
    connection.setRequestProperty("Content-Type", "application/json");// 设置请求的数据类型

    String requestData = "{\"name\":\"小明\",\"age\":\"18\"}";
    OutputStream outputStream = connection.getOutputStream();
    outputStream.write(requestData.getBytes());
    outputStream.flush();
    outputStream.close();

    if (connection.getResponseCode() == 200) {
        InputStream in = connection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        reader.close();
    } else {
        System.out.println("请求失败!");
    }
} catch (IOException e) {
    e.printStackTrace();
}

以上代码通过HttpURLConnection发送了一个POST请求,并输出了返回的数据。需要注意的是,这里使用了setDoOutput(true)方法允许输出数据,并通过setRequestProperty("Content-Type", "application/json")设置请求头中的Content-Type信息。同时,还需要在输出流中写入请求的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文读懂JAVA中HttpURLConnection的用法 - Python技术站

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

相关文章

  • 如何使用nexus在局域网内搭建maven私服及idea的使用

    下面是如何使用nexus在局域网内搭建maven私服及idea的使用的完整攻略。 准备工作 在开始搭建maven私服前,需要先准备以下内容: 安装Java环境。 下载nexus并进行安装。 配置maven的settings.xml文件,将本地的仓库与nexus私服进行关联。 搭建maven私服 下载并安装nexus 首先,我们需要从nexus官网 https…

    Java 2023年5月20日
    00
  • Android监听事件

    监听事件 ​ 监听事件机制由事件源,事件和事件监听器三类对象组成,事件源一般就是activity中的UI控件。 下面引用别人整理的图来更加形象的表达这些关系。 ​ 事件监听机制的意义就是让事件源的行为委托给事件监听器,让监听器控制事件的发生。 ​ 1.实现监听事件的方法 通过内部类实现 通过匿名内部类实现(大部分都是这样用) 通过事件源所在类实现 也可以直接…

    Java 2023年4月27日
    00
  • 十五道tomcat面试题,为数不多的机会!

    下面我将分步骤介绍“十五道tomcat面试题,为数不多的机会!”的完整攻略。 一、了解Tomcat Tomcat是一个简单的、易于使用的Web服务器,也是一个Servlet容器。它是开源的,由Apache软件基金会维护。可以运行在Windows、Linux、Unix等多个平台上。 二、准备Tomcat面试题 为了确保你能顺利通过Tomcat的面试,你需要提前…

    Java 2023年5月19日
    00
  • java 输入一个数字,反转输出这个数字的值(实现方法)

    针对这个问题,我会给出一个详细的解答: 题目描述 编写Java程序,输入一个数字,反转输出这个数字的值。 思路分析 将输入的数字转化为字符串类型。 将字符串类型的数字转化为字符数组类型。 通过for循环反转字符数组。 将反转后的字符数组转化成字符串类型,并将其转化为数字类型。 输出转化后的数字。 代码实现 import java.util.Scanner; …

    Java 2023年5月26日
    00
  • java向mysql插入数据乱码问题的解决方法

    Java 向 MySQL 插入数据时出现乱码问题是比较常见的问题,这是因为 Java 默认使用的字符集编码和 MySQL 默认的字符集编码不一致所导致的。下面是解决方法的完整攻略。 一、理解字符集编码 字符集编码是指用来表示字符在计算机中的二进制数据集合,是一种规范。计算机要读取和处理文本,必须将字符集编码转换成二进制数据,才能传递给计算机处理。常用的字符集…

    Java 2023年5月20日
    00
  • 基于Calendar获取当前时间的性能比较

    让我为您讲解“基于Calendar获取当前时间的性能比较”的完整攻略。 1. 问题背景 在Java开发中,获取当前时间常常是必不可少的操作。除了使用系统默认的时间获取方式 System.currentTimeMillis(),还可以使用 Calendar.getInstance() 获取当前时间。那么,基于 Calendar 获取当前时间的性能如何,是否比直…

    Java 2023年5月20日
    00
  • 详解SpringBoot中的统一异常处理

    下面我将为你详细讲解“详解SpringBoot中的统一异常处理”的完整攻略。 什么是SpringBoot中的统一异常处理 在SpringBoot中,我们经常需要对抛出的异常进行统一处理。如果我们每个地方都去捕捉异常,并进行相应处理,那么代码量会非常大。此时,我们可以使用SpringBoot中的统一异常处理,将所有异常集中处理,大大减少了代码量,也方便了我们对…

    Java 2023年5月27日
    00
  • 浅谈JDK8中的Duration Period和ChronoUnit

    下面我将详细讲解一下关于“浅谈JDK8中的Duration Period和ChronoUnit”的攻略。 什么是Duration和Period? 在Java8中,Duration和Period是两个时间间隔的类。它们可以用于各种时间操作,比如计算两个日期之间的差异,计算一个操作的持续时间等。 Duration类 Duration类表示时间上的持续时间,它可以…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部