package me.chanjar.weixin.common.util.http;
import java.io.IOException;
import org.apache.http.HttpHost;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import me.chanjar.weixin.common.exception.WxErrorException;
/**
* http请求执行器
*
* @param <T> 返回值类型
* @param <E> 请求参数类型
*/
public interface RequestExecutor<T, E> {
/**
*
* @param httpclient 传入的httpClient
* @param httpProxy http代理对象,如果没有配置代理则为空
* @param uri uri
* @param data 数据
* @return
* @throws WxErrorException
* @throws ClientProtocolException
* @throws IOException
*/
public T execute(CloseableHttpClient httpclient, HttpHost httpProxy, String uri, E data) throws WxErrorException, ClientProtocolException, IOException;
}