[英]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.