| 
					
				 | 
			
			
				@ -0,0 +1,336 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.util.http; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import okhttp3.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.logging.Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.logging.LogFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.File; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.UnsupportedEncodingException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.net.URLEncoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.concurrent.TimeUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author Airhead 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @since 2016/8/24. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				class DefaultClientImpl implements HTTPClient { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final Log log = LogFactory.getLog(DefaultClientImpl.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private OkHttpClient httpClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    DefaultClientImpl() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.httpClient = new OkHttpClient.Builder().connectTimeout(60, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .readTimeout(60, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .writeTimeout(60, TimeUnit.SECONDS).build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse get(String url) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return get(url, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse get(String url, Map<String, String> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return get(url, params, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse get(String url, Map<String, String> params, Map<String, String> headers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request.Builder builder = new Request.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (headers != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                builder.headers(Headers.of(headers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = builder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(formatURL(url, params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // ?? 怎么把异常处理了??  应该交由调用者处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ex.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417,ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse post(String url) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return post(url, (Map<String, String>) null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse post(String url, Map<String, String> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return post(url, params, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse post(String url, Map<String, String> params, Map<String, String> headers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            FormBody.Builder fromBodyBuilder = new FormBody.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (params != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.forEach(fromBodyBuilder::add); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RequestBody requestBody = fromBodyBuilder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request.Builder builder = new Request.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (headers != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                builder.headers(Headers.of(headers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = builder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .post(requestBody) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //讲异常信息返回,交由调用者处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417,ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse post(String url, String json, Map<String, String> headers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request.Builder builder = new Request.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (headers != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                builder.headers(Headers.of(headers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RequestBody body = RequestBody.create(JSON, json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = builder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .post(body) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417, ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse postFile(String url, String path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return postFile(url, path, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse postFile(String url, String path, Map<String, String> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return postFile(url, path, params, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse postFile(String url, String path, Map<String, String> params, Map<String, String> headers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            File file = new File(path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            final MediaType type = MediaType.parse("application/zip"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request.Builder requestBuilder = new Request.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (headers != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                requestBuilder.headers(Headers.of(headers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            MultipartBody.Builder multipartBuilder = new MultipartBody.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            multipartBuilder.setType(MultipartBody.FORM) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .addFormDataPart("pack", file.getName(), RequestBody.create(type, file)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (String key : params.keySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                multipartBuilder.addFormDataPart(key, params.get(key)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = requestBuilder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .post(multipartBuilder.build()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417, ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse postFile(String url, String key, String path, String contentType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            File file = new File(path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            final MediaType type = MediaType.parse(contentType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request.Builder requestBuilder = new Request.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            MultipartBody.Builder multipartBuilder = new MultipartBody.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            multipartBuilder.setType(MultipartBody.FORM) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .addFormDataPart(key, file.getName(), RequestBody.create(type, file)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = requestBuilder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .post(multipartBuilder.build()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417, ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse put(String url) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return put(url, (Map<String, String>) null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse put(String url, Map<String, String> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return put(url, params, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse put(String url, String json) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RequestBody body = RequestBody.create(JSON, json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = new Request.Builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .put(body) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ex.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417, ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse put(String url, Map<String, String> params, Map<String, String> headers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            FormBody.Builder fromBodyBuilder = new FormBody.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (params != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.forEach(fromBodyBuilder::add); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RequestBody requestBody = fromBodyBuilder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request.Builder builder = new Request.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (headers != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                builder.headers(Headers.of(headers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = builder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .put(requestBody) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417, ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse delete(String url) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return delete(url, (Map<String, String>) null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse delete(String url, Map<String, String> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return delete(url, params, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse delete(String url, String json) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RequestBody body = RequestBody.create(JSON, json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = new Request.Builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .delete(body) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417, ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse delete(String url, Map<String, String> params, Map<String, String> headers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            FormBody.Builder fromBodyBuilder = new FormBody.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (params != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.forEach(fromBodyBuilder::add); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RequestBody requestBody = fromBodyBuilder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request.Builder builder = new Request.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (headers != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                builder.headers(Headers.of(headers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Request request = builder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .url(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .delete(requestBody) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Response response = httpClient.newCall(request).execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(response.code(), response.body().string()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            log.error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new HTTPResponse(417, ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public HTTPResponse request(String method, String url, Map<String, String> params, Map<String, String> headers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (method.equals(POST)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return post(url, params, headers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (method.equals(GET)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return get(url, params, headers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (method.equals(PUT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return put(url, params, headers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (method.equals(DELETE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return delete(url, params, headers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return get(url, params, headers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    protected void setHttpClient(OkHttpClient okHttpClient) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.httpClient = okHttpClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String formatURL(String url, Map<String, String> params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (params == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        final String[] query = {""}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.forEach((name, value) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                query[0] += "&" + name + "=" + URLEncoder.encode(value, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } catch (UnsupportedEncodingException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new RuntimeException("encode url "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (url.contains("?")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return url + query[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return url + "?" + query[0].substring(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |