我是一个初学者,我对Resteasy有点迷失
我想使用以下网址发送帖子请求:/options?value=3name=picture
String myValue = "3";
String myName = "picture";
String key = "topsecret";
我不太确定会发生什么。我看过几个教程类(对我来说不是很清楚)以及与此类似的另一种方式
final MultivaluedMap 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密钥呢?
参考方案
首先,您必须查看要使用的API的文档,以了解如何将API密钥发送到服务器。并非所有的API都遵循相同的方法。
出于示例目的,假设必须在X-Api-Key标头中发送API密钥。这是非标准的,我只是为了演示如何使用客户端API而作了补充。
因此,您可以拥有以下内容:
// Create a client
Client client = ClientBuilder.newClient();
// Define a target
WebTarget target = client.target("/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();
上面的代码使用由RESTEasy实现的JAX-RS API。您最好尽可能使用Client而不是ResteasyClient以确保与其他实现的可移植性。
上面的代码还假定您要在请求有效负载中发送空文本。相应地修改它。
包含未使用的实体输入流的Response实例应关闭。对于仅处理响应头和状态代码而忽略响应实体的情况,这是典型的方案。
超出问题的范围,请记住,Client实例是管理基础客户端通信基础结构的重量级对象。因此,初始化和处置Client实例可能是一个相当昂贵的操作。
documentation建议仅创建少量的Client实例,并在可能的情况下重用它们。它还指出,Client实例在处置之前必须正确关闭,以避免资源泄漏。
Java:线程池如何将线程映射到可运行对象 - java
试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …JAVA:字节码和二进制有什么区别? - java
java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…java:继承 - java
有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…Java-搜索字符串数组中的字符串 - java
在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…Java RegEx中的单词边界\ b - java
我在使用\b作为Java Regex中的单词定界符时遇到困难。对于text = "/* sql statement */ INSERT INTO someTable"; pile("(?i)\binsert\b");找不到匹配项Pattern insPtrn = pile(&…