
net.wicp.tams.common.http.HttpCallThread Maven / Gradle / Ivy
The newest version!
/*
* **********************************************************************
* Copyright (c) 2022 .
* All rights reserved.
* 项目名称:common
* 项目描述:公共的工具集
* 版权说明:本软件属andy.zhou([email protected])所有。
* ***********************************************************************
*/
package net.wicp.tams.common.http;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.protocol.HttpContext;
/***
* 是否自动销毁。只有在线程池中产生且非saveSession会自动销毁
*
* @author Andy.zhou
*
*/
public class HttpCallThread extends HttpCallAbs implements Callable {
private final HttpContext context;
private final HttpRequestBase httpReq;
public HttpCallThread(CloseableHttpClient httpClient, HttpRequestBase httpReq, HttpContext context,
CookieStore cookieStore) {
super(false, cookieStore);
this.context = context;
this.httpReq = httpReq;
}
public HttpCallThread(CloseableHttpClient httpClient, HttpRequestBase httpReq, HttpContext context) {
this(httpClient, httpReq, context, null);
}
public HttpCallThread(HttpRequestBase httpReq, CookieStore cookieStore) {
super(false, cookieStore);
this.context = HttpClientContext.create();
this.httpReq = httpReq;
}
public HttpCallThread(HttpRequestBase httpReq) {
this(httpReq, null);
}
@Override
public HttpResult call() {
HttpResult call = super.call(this.httpReq, this.context);
return call;
}
/***
* 异步调用,如果不需要返回值可忽略,如果需要返回值用 task.get(); 会阻塞线程
*/
public FutureTask callAsyn() {
return super.callAsyn(this.httpReq, this.context);
}
public HttpResult callBlock() {
return super.callBlock(this.httpReq, this.context);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy