gpt4 book ai didi

java - 轻松休息 : How to send an easy POST request with parameters and api key

转载 作者:行者123 更新时间:2023-12-02 09:39:55 28 4
gpt4 key购买 nike

我是一名初学者,我对 Resteasy 有点迷茫

我想发送一个带有类似于以下 URL 的发布请求:http://myurl.com/options?value=3name=picture

String myValue = "3";
String myName = "picture";
String key = "topsecret";

我不太确定接下来会发生什么。我看过几个教程类(class)(我不太清楚)和另一种类似的方式

final MultivaluedMap<String, Object> queryParams = new MultivaluedMapImpl<>();
queryParams.add("value", myValue);
queryParams.add("name", myPicture);
final ResteasyClient client = new ResteasyClientBuilder().build();
final ResteasyWebTarget target = client.target(url).queryParams(queryParams);;
final Builder builder = target.request();

当我写作时,我有很多警告。这是正确的做法吗? API key 怎么样?

最佳答案

首先,您必须检查要使用的 API 的文档,了解如何将 API key 发送到服务器。 并非所有 API 都遵循相同的方法。

出于示例目的,我们假设 API key 必须在 X-Api-Key header 中发送。这是一个非标准,我编写它只是为了演示如何使用客户端 API。

所以你可以得到以下内容:

// Create a client
Client client = ClientBuilder.newClient();

// Define a target
WebTarget target = client.target("http://myurl.com/options")
.queryParam("value", "3")
.queryParam("name", "picture");

// Perform a request to the target
Response response = target.request().header("X-Api-Key", "topsecret")
.post(Entity.text(""));

// Process the response
// This part is up to you

// Close the response
response.close();

// Close the client
client.close();

上面的代码使用了JAX-RS API,它是由RESTEasy实现的。您最好使用Client而不是ResteasyClient尽可能确保与其他实现的可移植性。

上面的代码还假设您想要在请求负载中发送空文本进行相应修改。

Response包含未使用的实体输入流的实例应该关闭。这是仅处理响应 header 和状态代码而忽略响应实体的典型场景。

<小时/>

超出了问题的范围,请记住 Client实例是管理底层客户端通信基础设施的重量级对象。因此初始化以及 Client 的处置实例可能是一个相当昂贵的操作。

documentation建议仅创建少量 Client实例并在可能的情况下重用它们。它还指出Client实例在处置之前必须正确关闭,以避免资源泄漏。

关于java - 轻松休息 : How to send an easy POST request with parameters and api key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46172114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com