繁体   English   中英

如何使用 JAX-RS ClientRequest/Responsefilter 过滤响应/请求

[英]How to filter response/request using JAX-RS ClientRequest/Responsefilter

我有一个向外部服务发布请求的微配置文件

@ApplicationScoped
@RegisterRestClient(configKey = "a")
@RegisterProvider(FilterMe.class)
public interface Client {
  @POST
  @Path("/send.html")
  @Consumes({MediaType.APPLICATION_FORM_URLENCODED})
  @Produces({MediaType.TEXT_HTML})
  Response sendText(@FormParam("a") String a);
}

我正在尝试过滤此 POST 方法以获取请求和响应,我不知道获取 FormParam 和响应的正确方法是什么(当我调试时,我可以清楚地看到实体 InputStream 中的请求 object但我不知道如何得到它):

public class FilterMe implements ClientRequestFilter, ClientResponseFilter {

    @Context
    private ResourceInfo resourceInfo;

    @Override
    public void filter(ClientRequestContext clientRequestContext) throws IOException {

    }


    @Override
    public void filter(ClientRequestContext clientRequestContext, ClientResponseContext clientResponseContext) throws IOException {

    }
}

如果您在 REST 客户端中使用类型javax.ws.rs.core.Form作为参数,您应该能够通过调用javax.ws.rs.client.ClientRequestContext#getEntity来访问它。

然后在 javax.ws.rs.core.Form 上,您可以自由检索表单中发送的任何参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM