我正在编写REST服务,还有一个REST客户端来调用所述服务。我对此非常陌生,所以如果我提出一个愚蠢的问题,请与我同行,但我无法通过谷歌找到答案。
我们有一堆错误代码,有些是可重试的,有些则不是。我想写一个客户端,如果可能的话重试,否则会出现这些错误。我现在的主要问题是我不知道如何模拟我想要处理的响应。
例如我在做:
Client client = Client.create();
WebResource resource = client.resource("http://localhost:<port>/test");
resource.type(MediaType.APPLICATION_JSON);
ClientResponse response = resource.get(ClientResponse.class);
if (response.getClientResponseStatus().getStatusCode() == 404) {
//do something
}
是否有一种好方法可以覆盖特定的类或在此处设置处理程序,以便我可以模拟我想要测试和处理的所有错误代码?
此外,作为后续行动,是否有人知道有关REST客户端错误处理最佳实践信息的良好资源(在重试呼叫之前应该等待多长时间等)
谢谢!
答案 0 :(得分:0)
以下是我提出的答案:
我之前不知道如何在响应上设置状态,但可以通过HTTPServletResponse本地字段来实现。
然后根据REST调用中的某些属性,您可以通过dong response.setStatus(440)或其他任何内容返回特定的响应。
不要忘记在你的回复上添加一个@Context注释,以便jersey magic可以实例化它。
@Context HTTPServletResponse响应;