我有下面的DSS
http连接到url:
private static HttpURLConnection connection(String urlSpec) {
HttpURLConnection connection = new URL(urlSpec).openConnection() as HttpURLConnection
connection.setRequestProperty('Prefer', 'respond-async, wait=60')
connection.setRequestProperty('Accept', 'application/json')
connection.setRequestMethod("POST")
connection.setRequestProperty("Content-Type", "application/json; utf-8")
connection.setDoOutput(true)
connection
}
字符串
下面是我的代码的一部分,我正在检查http响应,如果响应是http 200
,即HTTP_OK
,那么我可以获取数据并插入数据库表。但现在的问题是,在处理过程中,我现在在Got http error code as 202
之间,即HTTP_ACCEPTED
,因此我无法将此数据处理到数据库表中。
我认为HTTP 202
在请求202
时是可以预期的。这意味着服务器已经收到了你的查询,并正在处理它。我们需要不断检查请求的状态,通过重试在202
响应中发送的新URL
,直到你得到HTTP 200
。但我不知道我怎么能做到这一点?
1条答案
按热度按时间bkkx9g8r1#
是的,您需要不断询问远程资源任务是否已完成。
202是非承诺性的,这意味着HTTP无法稍后发送指示处理请求的结果的异步响应。
我看到您还在使用“裸金属”实用程序,如
HttpURLConnection
,这让我相信您没有任何库支持重试HTTP调用。在这种情况下,你可以做的是生成一个新线程,可能使用
ExecutorService
,submit
/execute
一个简单循环的任务,例如。字符串
调用您的URL,直到收到
HTTP_OK
。一具 backbone 可能是
型
其中
callback
是异步接收HTTP结果的示例。型