21xrx.com
2024-11-22 14:13:03 Friday
登录
文章检索 我的文章 写文章
Java如何调用FastAPI接口
2023-06-15 14:16:50 深夜i     --     --
Java FastAPI HTTP请求

在现代的软件开发中,前后端分离越来越常见,为了实现前后端的沟通交流,后端需要提供一些HTTP API接口,供前端调用。而FastAPI是一个非常快速、现代化、快速编写API的web框架,因此在后端开发中越来越受欢迎。本文主要介绍如何使用Java调用FastAPI接口。

Java中调用HTTP接口可以使用Java的HttpURLConnection。以下是一个使用HttpURLConnection发送GET请求到FastAPI接口的例子:


import java.net.HttpURLConnection;

import java.net.URL;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Main {

  public static void main(String[] args) throws Exception {

    URL url = new URL("http://localhost:8000/items");

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    conn.setRequestMethod("GET");

    conn.setRequestProperty("Accept", "application/json");

    if (conn.getResponseCode() != 200) {

      throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());

    }

    BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

    String output;

    while ((output = br.readLine()) != null) {

      System.out.println(output);

    }

    conn.disconnect();

  }

}

在上面的例子中,我们创建了一个HttpURLConnection并且指定了需要请求的接口地址(`http://localhost:8000/items`)。然后我们设置了请求的方法为GET,并且指定了Accept类型为`application/json`。最后,我们发送了请求,并解析了返回结果。

如果要发送POST请求,可以使用如下的示例:


import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.nio.charset.StandardCharsets;

import java.util.HashMap;

import java.util.Map;

public class Main {

  public static void main(String[] args) throws Exception {

    URL url = new URL("http://localhost:8000/items");

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    conn.setRequestMethod("POST");

    conn.setRequestProperty("Content-Type", "application/json");

    conn.setDoOutput(true);

    Map params = new HashMap<>();

    params.put("name", "Java调用FastAPI接口");

    params.put("price", 20);

    String jsonInputString = new ObjectMapper().writeValueAsString(params);

    try (OutputStream os = conn.getOutputStream()) {

      byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);

      os.write(input, 0, input.length);

    }

    if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {

      throw new RuntimeException("Failed : HTTP error code : "

          + conn.getResponseCode());

    }

    BufferedReader br = new BufferedReader(new InputStreamReader(

        (conn.getInputStream())));

    String output;

    while ((output = br.readLine()) != null) {

      System.out.println(output);

    }

    conn.disconnect();

  }

}

在上面的例子中,我们创建了一个HttpURLConnection并且指定了需要请求的接口地址(`http://localhost:8000/items`)。然后我们设置了请求的方法为POST,并且指定了Content-Type为`application/json`,接着我们设置了请求体,并发送了请求。请求体是一个包含了name和price两个参数的JSON字符串,并且我们使用了Jackson库来序列化这个对象。最后,我们处理了返回结果。

本文介绍了如何使用Java调用FastAPI接口,并提供了两个示例:一个GET请求示例和一个POST请求示例。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复