从MultivaluedMap jax-rs调用Web服务

时间:2018-07-14 10:30:38

标签: java jax-rs

我有一个Web服务,该服务接受客户请求并将其发送到第二个Web服务。它获取第二个Web服务的响应并将其发送到客户端。实际上,这是一个网关。请求类型为“ urlencoded表单”。网关接收来自客户端的请求,如下所示:

@WebMethod
@POST
@Path("/send")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
String send(MultivaluedMap<String, String> encodedRequest, @Context HttpServletRequest httpServletRequest);

现在,我有一个MultivaluedMap,我想使用此MultivaluedMap调用第二个Web服务,并且不对其执行任何处理。第二个Web服务也使用“ application / x-www-form-urlencoded”。是否可以在不对此MultivaluedMap进行任何处理的情况下调用第二个Web服务?

1 个答案:

答案 0 :(得分:1)

要使用JAX-RS Client发送POST请求,请调用buildPost(Entity<?> entity),其中entity是POST内容。

Entity有许多有用的辅助方法,例如form(MultivaluedMap<String,String> formData)

  

创建一个“应用程序/ x-www-form-urlencoded”表单实体。

因此,您编写如下内容:

Future<Response> response = client.target("http://example.com/foo")
                                  .request()
                                  .buildPost(Entity.form(encodedRequest))
                                  .submit();