首页 > Java > java教程 > 如何使用 HttpUrlConnection 在 Java 中发送 HTTP 请求?

如何使用 HttpUrlConnection 在 Java 中发送 HTTP 请求?

Susan Sarandon
发布: 2024-12-21 00:09:11
原创
515 人浏览过

How to Send HTTP Requests in Java using HttpUrlConnection?

在 Java 中发送 HTTP 请求

发送 HTTP 请求的能力对于用 Java 与远程服务器和 Web API 进行交互至关重要。编写和传输 HTTP 请求的一种方法是通过 java.net.HttpUrlConnection 类。

创建 HTTP 请求

要创建 HTTP 请求,您可以使用以下步骤:

  1. 创建 URL 对象: 这代表目标HTTP 请求的 URL。
  2. 打开连接: 使用 URL 上的 openConnection() 方法建立与服务器的连接。
  3. 设置请求method: 使用 setRequestMethod() 指定 HTTP 方法(例如 GET、POST、PUT)
  4. 设置请求属性:配置 HTTP 请求的各种属性,例如内容类型、语言和缓存设置。
  5. 启用输出: 设置 setDoOutput(true) 以启用向请求写入数据body.

发送 HTTP 请求

制定请求后,您可以使用 DataOutputStream 将其发送到服务器:

  1. 写入请求体:使用writeBytes()方法写入请求体(如果有)到输出流。
  2. 关闭输出流: 这样就完成了请求的发送。

获取 HTTP 响应

发送请求后,您可以获得来自服务器:

  1. 获取输入流:使用 getInputStream() 方法检索响应的输入流。
  2. 读取响应: 使用 BufferedReader 读取响应流行的内容line.
  3. 解析响应正文:响应正文可能包含服务器返回的实际数据。您可以相应地解析它。

示例代码片段

以下 Java 代码演示了如何使用 HttpUrlConnection 类发送 HTTP POST 请求:

import java.net.HttpURLConnection;
import java.net.URL;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class HttpPostExample {

  public static void main(String[] args) {
    String targetURL = "https://example.com/api/endpoint";
    String urlParameters = "key1=value1&key2=value2";

    HttpURLConnection connection = null;

    try {
      URL url = new URL(targetURL);
      connection = (HttpURLConnection) url.openConnection();
      connection.setRequestMethod("POST");
      connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
      connection.setRequestProperty("Content-Length", Integer.toString(urlParameters.getBytes().length));
      connection.setDoOutput(true);

      DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
      wr.writeBytes(urlParameters);
      wr.close();

      InputStream is = connection.getInputStream();
      BufferedReader rd = new BufferedReader(new InputStreamReader(is));
      StringBuilder response = new StringBuilder();
      String line;
      while ((line = rd.readLine()) != null) {
        response.append(line);
        response.append('\r');
      }
      rd.close();
      System.out.println(response.toString());
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (connection != null) {
        connection.disconnect();
      }
    }
  }
}
登录后复制

以上是如何使用 HttpUrlConnection 在 Java 中发送 HTTP 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板