123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package cn.nosum.http;
- import cn.nosum.http.apache.ApacheSimpleGetRequestExecutor;
- import cn.nosum.http.exception.HttpErrorException;
- import cn.nosum.http.jodd.JoddHttpSimpleGetRequestExecutor;
- import cn.nosum.http.okhttp.OkHttpSimpleGetRequestExecutor;
- import java.io.IOException;
- /**
- * 简单的 GET 请求执行器.
- *
- * @param <H> 请求对象
- * @param <P> 代理对象
- * @param <R> 返回类型
- * @author Young
- */
- public abstract class SimpleGetRequestExecutor<H, P, R> extends SimpleRequestExecutor<H, P, String, R> {
- public SimpleGetRequestExecutor(RequestHttp<H, P> requestHttp) {
- super(requestHttp);
- }
- public SimpleGetRequestExecutor(RequestHttp<H, P> requestHttp, ResponseHandler<R,R> responseHandler) {
- super(requestHttp, responseHandler);
- }
- @Override
- public <V> V execute(String uri, String queryParam, ResponseHandler<R,V> handler) throws HttpErrorException, IOException {
- if (queryParam != null) {
- if (uri.indexOf('?') == -1) {
- uri += '?';
- }
- uri += uri.endsWith("?") ? queryParam : '&' + queryParam;
- }
- return handler.handle(doExecute(uri, queryParam));
- }
- public static RequestExecutor<String, String> create(RequestHttp requestHttp) {
- switch (requestHttp.getRequestType()) {
- case APACHE_HTTP:
- return new ApacheSimpleGetRequestExecutor(requestHttp);
- case JODD_HTTP:
- return new JoddHttpSimpleGetRequestExecutor(requestHttp);
- case OK_HTTP:
- return new OkHttpSimpleGetRequestExecutor(requestHttp);
- default:
- throw new IllegalArgumentException("非法请求参数");
- }
- }
- }
|