• HttpService


    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package com.thc.rcm.common.service;
    
    import com.alibaba.druid.support.json.JSONUtils;
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.TypeReference;
    import com.alibaba.fastjson.parser.Feature;
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import com.thc.rcm.common.dto.ThcResponse;
    import com.thc.rcm.common.interceptor.SessionUtil;
    import com.thc.rcm.common.utils.DateUtils;
    import com.thc.rcm.common.utils.JsonUtil;
    import com.thc.rcm.common.utils.LogUtils;
    import com.thc.rcm.common.utils.JsonUtil.JsonObject;
    import java.io.IOException;
    import java.net.URISyntaxException;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.CookieStore;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.utils.URIBuilder;
    import org.apache.http.cookie.Cookie;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.BasicCookieStore;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.bytesoft.bytetcc.supports.radicate.rpc.RpcResult;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Lazy;
    import org.springframework.stereotype.Service;
    
    @Service
    @Lazy(false)
    public class HttpService {
        private static final Gson gson = (new GsonBuilder()).setDateFormat("yyyy-MM-dd HH:mm:ss").create();
        @Autowired
        private CloseableHttpClient httpClient;
        @Autowired
        private RequestConfig requestConfig;
    
        public HttpService() {
        }
    
        public String doGet(String url) throws IOException {
            CloseableHttpResponse response = null;
            HttpGet httpGet = new HttpGet(url);
            httpGet.setConfig(this.requestConfig);
            httpGet.addHeader("x-access-token", SessionUtil.getToken());
    
            try {
                response = this.httpClient.execute(httpGet);
                if (response.getStatusLine().getStatusCode() == 200) {
                    String var4 = EntityUtils.toString(response.getEntity(), "UTF-8");
                    return var4;
                }
    
                LogUtils.printfCallback().info("url>" + url + "return" + response);
            } finally {
                if (response != null) {
                    response.close();
                }
    
            }
    
            return null;
        }
    
        public String doGet(String url, String token) throws IOException {
            CloseableHttpResponse response = null;
            HttpGet httpGet = new HttpGet(url);
            httpGet.setConfig(this.requestConfig);
            httpGet.addHeader("x-access-token", token);
    
            try {
                response = this.httpClient.execute(httpGet);
                if (response.getStatusLine().getStatusCode() == 200) {
                    String var5 = EntityUtils.toString(response.getEntity(), "UTF-8");
                    return var5;
                }
    
                LogUtils.printfCallback().info("url>" + url + "return" + response);
            } finally {
                if (response != null) {
                    response.close();
                }
    
            }
    
            return null;
        }
    
        public JsonObject getJson(String url, String token) throws IOException {
            String s = this.doGet(url, token);
            return JsonUtil.stringTojson(s);
        }
    
        public JsonObject getJson(String url) throws IOException {
            String s = this.doGet(url);
            return JsonUtil.stringTojson(s);
        }
    
        public JsonObject getJson(String url, Map<String, Object> paramMap) throws IOException {
            String s = null;
    
            try {
                s = this.doGet(url, paramMap);
            } catch (URISyntaxException var5) {
                var5.printStackTrace();
            }
    
            return JsonUtil.stringTojson(s);
        }
    
        public String doGet(String url, Map<String, Object> paramMap) throws IOException, URISyntaxException {
            URIBuilder builder = new URIBuilder(url);
            Iterator var4 = paramMap.keySet().iterator();
    
            while(var4.hasNext()) {
                String s = (String)var4.next();
                builder.addParameter(s, paramMap.get(s).toString());
            }
    
            return this.doGet(builder.build().toString());
        }
    
        public JsonObject getKdSession(String url, String login) throws IOException {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(this.requestConfig);
            String sessionid = null;
            if (login != null) {
                StringEntity stringEntity = new StringEntity(login, ContentType.APPLICATION_JSON);
                httpPost.setEntity(stringEntity);
            }
    
            CloseableHttpResponse response = null;
    
            HttpResult res;
            try {
                CookieStore cookieStore = new BasicCookieStore();
                this.httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();
                response = this.httpClient.execute(httpPost);
                List<Cookie> cs = cookieStore.getCookies();
                int i = 0;
    
                while(true) {
                    if (i < cs.size()) {
                        if (!((Cookie)cs.get(i)).getName().equals("kdservice-sessionid")) {
                            ++i;
                            continue;
                        }
    
                        sessionid = ((Cookie)cs.get(i)).getValue();
                    }
    
                    res = new HttpResult(response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), "UTF-8"));
                    break;
                }
            } finally {
                if (response != null) {
                    response.close();
                }
    
            }
    
            JsonObject resJson = JsonUtil.stringTojson(res.getData());
            resJson.put("kdservice-sessionid", sessionid);
            return resJson;
        }
    
        public String doKdPost(String url, String json, String session) throws IOException {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(this.requestConfig);
            httpPost.addHeader("kdservice-sessionid", session);
            if (json != null) {
                StringEntity stringEntity = new StringEntity(json, ContentType.APPLICATION_JSON);
                httpPost.setEntity(stringEntity);
            }
    
            CloseableHttpResponse response = null;
    
            HttpResult res;
            try {
                response = this.httpClient.execute(httpPost);
                res = new HttpResult(response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), "UTF-8"));
            } finally {
                if (response != null) {
                    response.close();
                }
    
            }
    
            return res.getData();
        }
    
        public HttpResult doPost(String url, Map<String, String> paramMap) throws IOException {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(this.requestConfig);
            httpPost.addHeader("x-access-token", SessionUtil.getToken());
            if (paramMap != null) {
                List<NameValuePair> parameters = new ArrayList();
                Iterator var5 = paramMap.keySet().iterator();
    
                while(var5.hasNext()) {
                    String s = (String)var5.next();
                    parameters.add(new BasicNameValuePair(s, (String)paramMap.get(s)));
                }
    
                UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters, Charset.forName("UTF-8"));
                httpPost.setEntity(formEntity);
            }
    
            CloseableHttpResponse response = null;
    
            HttpResult var11;
            try {
                response = this.httpClient.execute(httpPost);
                LogUtils.printfCallback().info("url>" + url + "param>" + paramMap + "return>" + response);
                var11 = new HttpResult(response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity()));
            } finally {
                if (response != null) {
                    response.close();
                }
    
            }
    
            return var11;
        }
    
        public HttpResult doPost(String url) throws IOException {
            return this.doPost(url, (Map)null);
        }
    
        public JsonObject postResult(String url) throws IOException {
            String s = this.doPost(url).getData();
            return JsonUtil.stringTojson(s);
        }
    
        public JsonObject postResult(String url, String json) throws IOException {
            long beginTime = System.currentTimeMillis();
            String s = null;
            s = this.doPostJson(url, json).getData();
            long endTime = System.currentTimeMillis();
            LogUtils.commonLog().info("请求工程耗时: {}  URI:{}", DateUtils.formatDateTime(endTime - beginTime), url);
            return s != null && !s.equals("") ? JsonUtil.stringTojson(s) : new JsonObject();
        }
    
        public JsonObject postResult(String url, String json, String session) throws IOException {
            String s = null;
            s = this.doPostJson(url, json, session).getData();
            return s != null && !s.equals("") ? JsonUtil.stringTojson(s) : new JsonObject();
        }
    
        public RpcResult postRpcResult(String url, String json) throws IOException {
            String s = null;
            RpcResult result = new RpcResult();
            s = this.doPostJson(url, json).getData();
            if (s != null && !s.equals("")) {
                result.setValue(s);
                return result;
            } else {
                return result;
            }
        }
    
        public HttpResult doPostJson(String url, String json) throws IOException {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(this.requestConfig);
            httpPost.addHeader("x-access-token", SessionUtil.getToken());
            httpPost.addHeader("Content-Type", "application/json");
            if (json != null) {
                StringEntity stringEntity = new StringEntity(json, ContentType.APPLICATION_JSON);
                httpPost.setEntity(stringEntity);
            }
    
            CloseableHttpResponse response = null;
    
            HttpResult res;
            try {
                response = this.httpClient.execute(httpPost);
                LogUtils.printfCallback().info("url>" + url + "param>" + json + "return>" + response);
                res = new HttpResult(response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), "UTF-8"));
            } finally {
                if (response != null) {
                    response.close();
                }
    
            }
    
            return res;
        }
    
        public HttpResult doPostJson(String url, String json, String session) throws IOException {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(this.requestConfig);
            if (session != null) {
                httpPost.addHeader("x-access-token", session);
            }
    
            if (json != null) {
                StringEntity stringEntity = new StringEntity(json, ContentType.APPLICATION_JSON);
                httpPost.setEntity(stringEntity);
            }
    
            CloseableHttpResponse response = null;
    
            HttpResult var6;
            try {
                response = this.httpClient.execute(httpPost);
                LogUtils.printfCallback().info("url>" + url + "param>" + json + "return>" + response);
                var6 = new HttpResult(response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), "UTF-8"));
            } finally {
                if (response != null) {
                    response.close();
                }
    
            }
    
            return var6;
        }
    
        public <T> T doPostJson(String url, Object entity, String token, TypeReference<T> type) {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(this.requestConfig);
            String requestJson = null;
            if (token != null) {
                httpPost.addHeader("x-access-token", token);
            }
    
            if (entity != null) {
                requestJson = gson.toJson(entity);
                StringEntity stringEntity = new StringEntity(requestJson, ContentType.APPLICATION_JSON);
                httpPost.setEntity(stringEntity);
            }
    
            CloseableHttpResponse response = null;
    
            Object var9;
            try {
                response = this.httpClient.execute(httpPost);
                if (response.getStatusLine().getStatusCode() != 200) {
                    throw new RuntimeException(String.format("request url:%s with requestBody %s get response %s", url, requestJson, response));
                }
    
                ThcResponse<T> thcResponse = (ThcResponse)JSON.parseObject(EntityUtils.toString(response.getEntity(), "UTF-8"), new TypeReference<ThcResponse<T>>() {
                }, new Feature[0]);
                var9 = JSON.parseObject(JSONUtils.toJSONString(thcResponse.getSuccessData()), type, new Feature[0]);
            } catch (IOException var18) {
                throw new RuntimeException(String.format("request url:%s with request body %s", url, requestJson), var18);
            } finally {
                if (response != null) {
                    try {
                        response.close();
                    } catch (IOException var17) {
                        var17.printStackTrace();
                    }
                }
    
            }
    
            return var9;
        }
    }
    

      

  • 相关阅读:
    绝对定位和浮动的区别和运用
    xhtml css 漏 整理
    网站自适应设备屏幕
    CSS 媒体查询 响应式
    js/jquery判断浏览器 & 停止加载
    回调函数之同步调用、回调、异步调用
    Flash生成HTML5动画方法
    在html页面中使用js变量
    BZOJ 4417 Luogu P3990 [SHOI2013]超级跳马 (DP、矩阵乘法)
    NOI2019游记
  • 原文地址:https://www.cnblogs.com/guchunchao/p/10620981.html
Copyright © 2020-2023  润新知