【发布时间】:2019-11-13 23:00:19
【问题描述】:
我正在使用 Restlet 框架,特别是 ClientResource 类,通过其自己的 get()、post()、put() 和 delete() 方法将 HTTP 请求发送到服务器。由于有时服务器处于脱机状态,因此无法访问,因此我想设置比默认值更小的超时。我该怎么做?
目前我已经尝试过这种方式但没有成功:
ClientResource cr = new ClientResource(uri);
Context context = new Context();
context.getParameters().add("maxIoIdleTimeMs", "0");
context.getParameters().add("ioMaxIdleTimeMs", "0");
context.getParameters().add("socketTimeout", "1000");
cr.setNext(new Client(context, Protocol.HTTP));
cr.setRetryOnError(false);
...
Representation r = cr.get();
结果与默认情况相同,即在从get() 方法返回连接错误异常之前大约超时60-90 秒。我的目的是预测它。
【问题讨论】:
-
您是否尝试设置
readTimeout? -
是的,但它不起作用。
-
也许你可以试试 Mashape Unirest 库?
-
@xybrek 我不能,因为这意味着必须更改我项目中的许多内容。无论如何,这不是一个好的答案。
标签: java restlet clientresource