HttpService
Posted guchunchao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; } }
以上是关于HttpService的主要内容,如果未能解决你的问题,请参考以下文章
NestJS:记录来自 HttpService 调用的请求/响应?
如何使用 jest 测试 HttpService.Post 调用
如何将参数发送到 HTTPService 调用以作为组件重用