Gok*_*rni 5 java analytics httpresponse httpclient httprequest
我们正在实施我们自己的分析,因为我们公开了一个需要调用的 Web 服务,该服务将捕获我们数据库中的数据。
问题是,由于这是分析,我们将进行大量调用(例如每个页面加载、每个 js 之后调用、CSS 加载等),因此会有很多这样的调用。所以我不希望服务器加载大量请求,以便更精确地等待响应。因为我们得到的回应对我们几乎没有任何用处。
那么有什么方法可以只触发 Web 服务请求而忘记我已经触发了它?
我知道每个 HTTP 请求也会有响应。
因此,让我想到的一件事是,如果我们将请求超时设置为零秒会怎样?但我不确定这是否是正确的做法。
请为我提供更多建议
您可能会发现以下AsyncRequestDemo.java有用:
import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import org.apache.http.client.fluent.Async;
import org.apache.http.client.fluent.Content;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.concurrent.FutureCallback;
/**
* Following libraries have been used:
*
* 1) httpcore-4.4.5.jar
* 2) httpclient-4.5.2.jar
* 3) commons-logging-1.2.jar
* 4) fluent-hc-4.5.2.jar *
*
*/
public class AsyncRequestDemo {
public static void main(String[] args) throws Exception {
URIBuilder urlBuilder = new URIBuilder()
.setScheme("http")
.setHost("stackoverflow.com")
.setPath("/questions/38277471/fire-and-forget-for-http-in-java");
final int nThreads = 3; // no. of threads in the pool
final int timeout = 0; // connection time out in milliseconds
URI uri = null;
try {
uri = urlBuilder.build();
} catch (URISyntaxException use) {
use.printStackTrace();
}
ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
Async async = Async.newInstance().use(executorService);
final Request request = Request.Get(uri).connectTimeout(timeout);
Future<Content> future = async.execute(request, new FutureCallback<Content>() {
public void failed(final Exception e) {
System.out.println("Request failed: " + request);
System.exit(1);
}
public void completed(final Content content) {
System.out.println("Request completed: " + request);
System.out.println(content.asString());
System.exit(0);
}
public void cancelled() {
}
});
System.out.println("Request submitted");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9720 次 |
| 最近记录: |