当前位置: 首页 > 知识库问答 >
问题:

用Java消费restapi

易成天
2023-03-14

我有一个管理Web应用程序位于远程服务器上。这个应用程序是使用MEAN堆栈编写的,我有一个连接到网络应用程序所需的所有RESTful路由的列表。

我正在编写一个Java客户端应用程序,它需要从这个管理应用程序发送和接收数据。如果我有服务器的IP地址和REST路由,如何将客户端连接到web应用程序?

我想我需要提供一个到服务器和RESTAPI文件的URL连接,然后只需调用路由函数,如PUTGET

共有2个答案

徐鑫鹏
2023-03-14

我将首先阅读新泽西的留档,特别是客户部分。您将需要熟悉WebTarget类,并调用它(留档示例):

ClientConfig clientConfig = new ClientConfig();
clientConfig.register(MyClientResponseFilter.class);
clientConfig.register(new AnotherClientFilter());

Client client = ClientBuilder.newClient(clientConfig);
client.register(ThirdClientFilter.class);

WebTarget webTarget = client.target("http://example.com/rest");
webTarget.register(FilterForExampleCom.class);
WebTarget resourceWebTarget = webTarget.path("resource");
WebTarget helloworldWebTarget = resourceWebTarget.path("helloworld");
WebTarget helloworldWebTargetWithQueryParam =
helloworldWebTarget.queryParam("greeting", "Hi World!");

Invocation.Builder invocationBuilder =
    helloworldWebTargetWithQueryParam.request(MediaType.TEXT_PLAIN_TYPE);
invocationBuilder.header("some-header", "true");

Response response = invocationBuilder.get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
须敏学
2023-03-14

现在Java有很多使用REST应用程序的库。

JSR339中定义的JAX-RS客户端API(javax.ws.RS.Clientpackage)是使用Java中RESTWeb服务的标准方式。除此之外,Jersey和RESTEasy还实现了该规范。

Jersey和RESTEasy API都提供了代理框架

基本思想是,您可以将标准JAX-RS注释附加到接口,然后通过服务器端的资源类实现该接口,同时通过使用java动态生成该接口的实现,在客户端重用相同的接口。朗。反思。代理调用正确的低级客户端API方法。

有关更多详细信息,请查看以下内容:

  • Jersey基于代理的客户端API
  • 基于RESTEasy代理的客户端API

还有一些其他好的选项,您可以考虑作为JAX-RS客户端API的替代品:

  • Spring rest模板
 类似资料:
  • 我正在尝试让 kafka 消费者获取在 Java 中生成并发布到主题的消息。我的消费者如下。 consumer.java 当我运行上面的代码时,我在控制台中什么也看不到,屏幕后面的java producer程序正在‘AATest’主题下不断地发布数据。另外,在动物园管理员控制台中,当我尝试运行上面的consumer.java时,我得到了以下行 此外,当我运行指向 AATest 主题的单独控制台使用

  • 两个面试官 应该是技术+hr  首先做一个2分钟自我介绍(一分钟介绍完了。。)  技术:  1.使用过哪些Java的框架  2.说说对于spring事务的了解  3.mysql左连接,右连接的理解,结果有什么不一样?  4.对Java异常的理解  5.怎么避免空指针异常?  6.使用过redis吗,说说对于redis的理解 redis的使用场景  hr:  1.自己的优缺点?  2.未来三年的职业

  • 我有一个Kafka代理,有多个主题,每个主题都有一个分区。 我有一个消费者,它可以很好地使用主题中的消息 我的问题是,我需要通过增加分区的数量来提高消息队列的吞吐量,比如说,我在一个主题上有四个分区,有没有一种方法可以让我编写四个消费者,每个消费者都指向该主题上的各个分区??? }

  • 我有一个简单的Kafka设置。生成器正在以较高的速率向单个分区生成具有单个主题的消息。单个使用者正在使用来自此分区的消息。在此过程中,使用者可能会多次暂停处理消息。停顿可以持续几分钟。生产者停止产生消息后,所有排队的消息都将由使用者处理。生产者产生的消息似乎不会立即被消费者看到。我使用的是Kafka0.10.1.0。这里会发生什么?下面是使用消息的代码部分: 代理上的所有配置都保留为kafka默认

  • 是否有一种方法以编程方式访问和打印使用者滞后偏移,或者说使用者读取的最后一条记录的偏移与某个生产者写入该使用者分区的最后一条记录的偏移之间的位置差。 要知道我的最终目标是将这个值发送到prometheus进行监视,我应该在上面添加哪些语句来得到滞后偏移值?

  • 我在ActiveMQ中使用异步消息使用者。我的制作人工作正常,向队列发送消息。现在,我的异步消息消费者正在等待调用onMessage(),但这从未发生过。因此,问题是: 异步使用者不会使用消息 ActiveMQ日志的快照还显示了许多刚刚堆积在挂起状态中的消息: 我想不出问题到底出在哪里。 计数: toPageIn 78 只是不断增加,信息仍然无法传递给消费者。 是服务器端问题还是客户端问题?