diff options
Diffstat (limited to 'wfenginemgrservice/src/main/java/org/onap/workflow/common')
-rw-r--r-- | wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java | 584 |
1 files changed, 295 insertions, 289 deletions
diff --git a/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java b/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java index 2eeb2fc..4d92dcb 100644 --- a/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java +++ b/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java @@ -1,289 +1,295 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onap.workflow.common; - -import java.io.IOException; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpHost; -import org.apache.http.HttpRequest; -import org.apache.http.HttpResponse; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.ResponseHandler; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpDelete; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpPut; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.BasicResponseHandler; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; -import org.onap.workflow.tools.Constants; -import org.onap.workflow.tools.HttpDeleteWithBody; -import org.onap.workflow.tools.RequestParameters; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; - -public class RestClient { - private static final String HTTP = "http"; - private static final Logger logger = LoggerFactory.getLogger(RestClient.class); - - public enum HttpMethod { - GET, POST, PUT, DELETE - } - - /** - * - * @param method - * @param ip - * @param port - * @param url - * @param body - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse executeHttp(HttpMethod method, String ip, Integer port, String url, - HttpEntity body) throws ClientProtocolException, IOException { - logger.info("deployfile method send"); - CloseableHttpClient httpclient = HttpClients.createDefault(); - HttpResponse httpResponse = null; - RestResponse result = new RestResponse(); - try { - if (ip == null) { - ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); - } - if (port == null) { - port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); - } - HttpHost target = new HttpHost(ip, port, HTTP); - HttpRequest request = getRequest(method, url, body); - logger.info("deployfile method send ip" + ip); - request.addHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); - - httpResponse = httpclient.execute(target, request); - HttpEntity entity = httpResponse.getEntity(); - logger.info("deployfile method send"); - if (entity != null && httpResponse.getStatusLine()!=null) { - result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); - logger.info("reply status code deploy"+httpResponse.getStatusLine().getStatusCode()); - result.setResult(EntityUtils.toString(entity)); - } - } catch (IOException e) { - logger.warn("Close httpclient failed.", e); - } finally { - if (httpclient != null) { - try { - httpclient.close(); - } catch (IOException e) { - logger.warn("Close httpclient failed.", e); - } - } - } - return result; - } - - public static HttpRequest getRequest(HttpMethod method, String url, HttpEntity body) { - HttpRequest request = null; - switch (method) { - case GET: - request = new HttpGet(url); - break; - case POST: - request = new HttpPost(url); - ((HttpPost) request).setEntity(body); - break; - case PUT: - request = new HttpPut(url); - ((HttpPut) request).setEntity(body); - break; - case DELETE: - request = new HttpDelete(url); - break; - default: - break; - } - return request; - } - - /** - * - * @param ip - * @param port - * @param url - * @param requestBody - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse post(String ip, int port, String url, HttpEntity requestBody) - throws ClientProtocolException, IOException { - return executeHttp(HttpMethod.POST, ip, port, url, requestBody); - } - - - - /** - * - * @param method - * @param ip - * @param port - * @param url - * @param body - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse executeHttpDeleteDeploy(HttpMethod method, String ip, Integer port, - String url) throws ClientProtocolException, IOException { - if (ip == null) { - ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); - } - if(port==null) { - port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); - } - RestResponse result = new RestResponse(); - CloseableHttpClient httpClient = HttpClients.createDefault(); - try { - httpClient = HttpClients.createDefault(); - // "http://localhost:8080/activiti-rest/service/repository/deployments/167501" - String deleteUrl = Constants.HTTP_HEADER + ip + Constants.COLON + port + url; - HttpDeleteWithBody httpDeteTest = new HttpDeleteWithBody(deleteUrl); - Gson gson = new Gson(); - RequestParameters reqPa = new RequestParameters(); - reqPa.setCasCade(true); - String jsonStr = gson.toJson(reqPa, RequestParameters.class); - StringEntity requestEntity = new StringEntity(jsonStr, "UTF-8"); - requestEntity.setContentEncoding("UTF-8"); - httpDeteTest.setHeader("Content-type", "application/json"); - httpDeteTest.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); - httpDeteTest.setEntity(new StringEntity(jsonStr)); - // returnValue = httpClient.execute(httpDeteTest, responseHandler); // 调接口获取返回值时,必须用此方法 - CloseableHttpResponse httpResonse = httpClient.execute(httpDeteTest); - if(httpResonse!=null && httpResonse.getStatusLine()!=null) { - int statusCode = httpResonse.getStatusLine().getStatusCode(); - result.setStatusCode(statusCode); - } - // result.setResult(EntityUtils.toString(httpResonse.getEntity())); - } catch (Exception e) { - e.printStackTrace(); - } - - finally { - try { - httpClient.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - return result; - } - - /** - * - * @param method - * @param ip - * @param port - * @param url - * @param body - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse executeHttpStartIntance(HttpMethod method, String ip, Integer port, - String url, ActivitiStartProcessRequest object) throws ClientProtocolException, IOException { - String returnValue = ""; - RestResponse result = new RestResponse(); - CloseableHttpClient httpClient = HttpClients.createDefault(); - ResponseHandler<String> responseHandler = new BasicResponseHandler(); - try { - httpClient = HttpClients.createDefault(); - if (ip == null) { - ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); - } - if(ip==null) { - port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); - } - HttpPost httpPost = new HttpPost(Constants.HTTP_HEADER + ip + ":" + port + url); - Gson gson = new Gson(); - String jsonStr = gson.toJson(object, ActivitiStartProcessRequest.class); - StringEntity requestEntity = new StringEntity(jsonStr, "utf-8"); - requestEntity.setContentEncoding("UTF-8"); - httpPost.setHeader("Content-type", "application/json"); - httpPost.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); - httpPost.setEntity(requestEntity); - returnValue = httpClient.execute(httpPost, responseHandler); // 调接口获取返回值时,必须用此方法 - CloseableHttpResponse httpResonse = httpClient.execute(httpPost); - if(httpResonse!=null && httpResonse.getStatusLine()!=null) { - int statusCode = httpResonse.getStatusLine().getStatusCode(); - returnValue = EntityUtils.toString(httpResonse.getEntity(), "UTF-8"); - result.setStatusCode(statusCode); - result.setResult(returnValue); - } - } catch (Exception e) { - e.printStackTrace(); - } - - finally { - try { - httpClient.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - return result; - } - - /** - * - * @param ip - * @param port - * @param url - * @param requestBody - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse post(String ip, Integer port, String url, - ActivitiStartProcessRequest requestBody) throws ClientProtocolException, IOException { - return executeHttpStartIntance(HttpMethod.POST, ip, port, url, requestBody); - } - - /** - * - * @param ip - * @param port - * @param url - * @param requestBody - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse post(String ip, Integer port, String url) - throws ClientProtocolException, IOException { - return executeHttpDeleteDeploy(HttpMethod.DELETE, ip, port, url); - } - -} +/**
+ * Copyright 2017 ZTE Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onap.workflow.common;
+
+import java.io.IOException;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest;
+import org.onap.workflow.tools.Constants;
+import org.onap.workflow.tools.HttpDeleteWithBody;
+import org.onap.workflow.tools.RequestParameters;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.gson.Gson;
+
+public class RestClient {
+ private static final String HTTP = "http";
+ private static final Logger logger = LoggerFactory.getLogger(RestClient.class);
+ public static boolean isTest = false;
+
+ public enum HttpMethod {
+ GET, POST, PUT, DELETE
+ }
+
+ /**
+ *
+ * @param method
+ * @param ip
+ * @param port
+ * @param url
+ * @param body
+ * @return
+ * @throws ClientProtocolException
+ * @throws IOException
+ */
+ public static RestResponse executeHttp(HttpMethod method, String ip, Integer port, String url,
+ HttpEntity body) throws ClientProtocolException, IOException {
+ if (isTest) {
+ return new RestResponse();
+ }
+
+ logger.info("deployfile method send");
+ CloseableHttpClient httpclient = HttpClients.createDefault();
+ HttpResponse httpResponse = null;
+ RestResponse result = new RestResponse();
+ try {
+ if (ip == null) {
+ ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp();
+ }
+ if (port == null) {
+ port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort();
+ }
+ HttpHost target = new HttpHost(ip, port, HTTP);
+ HttpRequest request = getRequest(method, url, body);
+ logger.info("deployfile method send ip" + ip);
+ request.addHeader(Constants.AUTHORIZATION, ToolUtil.getHeader());
+
+ httpResponse = httpclient.execute(target, request);
+ HttpEntity entity = httpResponse.getEntity();
+ logger.info("deployfile method send");
+ if (entity != null && httpResponse.getStatusLine() != null) {
+ result.setStatusCode(httpResponse.getStatusLine().getStatusCode());
+ logger.info("reply status code deploy" + httpResponse.getStatusLine().getStatusCode());
+ result.setResult(EntityUtils.toString(entity));
+ }
+ } catch (IOException e) {
+ logger.warn("Close httpclient failed.", e);
+ } finally {
+ closeHttpClient(httpclient);
+ }
+ return result;
+ }
+
+ public static boolean closeHttpClient(CloseableHttpClient httpclient) {
+ if (httpclient != null) {
+ try {
+ httpclient.close();
+ return true;
+ } catch (IOException e) {
+ logger.warn("Close httpclient failed.", e);
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static HttpRequest getRequest(HttpMethod method, String url, HttpEntity body) {
+ HttpRequest request = null;
+ switch (method) {
+ case GET:
+ request = new HttpGet(url);
+ break;
+ case POST:
+ request = new HttpPost(url);
+ ((HttpPost) request).setEntity(body);
+ break;
+ case PUT:
+ request = new HttpPut(url);
+ ((HttpPut) request).setEntity(body);
+ break;
+ case DELETE:
+ request = new HttpDelete(url);
+ break;
+ default:
+ break;
+ }
+ return request;
+ }
+
+ /**
+ *
+ * @param ip
+ * @param port
+ * @param url
+ * @param requestBody
+ * @return
+ * @throws ClientProtocolException
+ * @throws IOException
+ */
+ public static RestResponse post(String ip, int port, String url, HttpEntity requestBody)
+ throws ClientProtocolException, IOException {
+ return executeHttp(HttpMethod.POST, ip, port, url, requestBody);
+ }
+
+
+
+ /**
+ *
+ * @param method
+ * @param ip
+ * @param port
+ * @param url
+ * @param body
+ * @return
+ * @throws ClientProtocolException
+ * @throws IOException
+ */
+ public static RestResponse executeHttpDeleteDeploy(HttpMethod method, String ip, Integer port,
+ String url) throws ClientProtocolException, IOException {
+ if (isTest) {
+ return new RestResponse();
+ }
+ if (ip == null) {
+ ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp();
+ }
+ if (port == null) {
+ port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort();
+ }
+ RestResponse result = new RestResponse();
+ CloseableHttpClient httpClient = HttpClients.createDefault();
+ try {
+ httpClient = HttpClients.createDefault();
+ // "http://localhost:8080/activiti-rest/service/repository/deployments/167501"
+ String deleteUrl = Constants.HTTP_HEADER + ip + Constants.COLON + port + url;
+ HttpDeleteWithBody httpDeteTest = new HttpDeleteWithBody(deleteUrl);
+ Gson gson = new Gson();
+ RequestParameters reqPa = new RequestParameters();
+ reqPa.setCasCade(true);
+ String jsonStr = gson.toJson(reqPa, RequestParameters.class);
+ StringEntity requestEntity = new StringEntity(jsonStr, "UTF-8");
+ requestEntity.setContentEncoding("UTF-8");
+ httpDeteTest.setHeader("Content-type", "application/json");
+ httpDeteTest.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader());
+ httpDeteTest.setEntity(new StringEntity(jsonStr));
+ // returnValue = httpClient.execute(httpDeteTest, responseHandler); // 调接口获取返回值时,必须用此方法
+ CloseableHttpResponse httpResonse = httpClient.execute(httpDeteTest);
+ if (httpResonse != null && httpResonse.getStatusLine() != null) {
+ int statusCode = httpResonse.getStatusLine().getStatusCode();
+ result.setStatusCode(statusCode);
+ }
+ // result.setResult(EntityUtils.toString(httpResonse.getEntity()));
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ closeHttpClient(httpClient);
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @param method
+ * @param ip
+ * @param port
+ * @param url
+ * @param body
+ * @return
+ * @throws ClientProtocolException
+ * @throws IOException
+ */
+ public static RestResponse executeHttpStartIntance(HttpMethod method, String ip, Integer port,
+ String url, ActivitiStartProcessRequest object) throws ClientProtocolException, IOException {
+ if (isTest) {
+ return new RestResponse();
+ }
+ String returnValue = "";
+ RestResponse result = new RestResponse();
+ CloseableHttpClient httpClient = HttpClients.createDefault();
+ ResponseHandler<String> responseHandler = new BasicResponseHandler();
+ try {
+ httpClient = HttpClients.createDefault();
+ if (ip == null) {
+ ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp();
+ }
+ if (port == null) {
+ port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort();
+ }
+ HttpPost httpPost = new HttpPost(Constants.HTTP_HEADER + ip + ":" + port + url);
+ Gson gson = new Gson();
+ String jsonStr = gson.toJson(object, ActivitiStartProcessRequest.class);
+ StringEntity requestEntity = new StringEntity(jsonStr, "utf-8");
+ requestEntity.setContentEncoding("UTF-8");
+ httpPost.setHeader("Content-type", "application/json");
+ httpPost.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader());
+ httpPost.setEntity(requestEntity);
+ returnValue = httpClient.execute(httpPost, responseHandler); // 调接口获取返回值时,必须用此方法
+ CloseableHttpResponse httpResonse = httpClient.execute(httpPost);
+ if (httpResonse != null && httpResonse.getStatusLine() != null) {
+ int statusCode = httpResonse.getStatusLine().getStatusCode();
+ returnValue = EntityUtils.toString(httpResonse.getEntity(), "UTF-8");
+ result.setStatusCode(statusCode);
+ result.setResult(returnValue);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ finally {
+ closeHttpClient(httpClient);
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @param ip
+ * @param port
+ * @param url
+ * @param requestBody
+ * @return
+ * @throws ClientProtocolException
+ * @throws IOException
+ */
+ public static RestResponse post(String ip, Integer port, String url,
+ ActivitiStartProcessRequest requestBody) throws ClientProtocolException, IOException {
+ return executeHttpStartIntance(HttpMethod.POST, ip, port, url, requestBody);
+ }
+
+ /**
+ *
+ * @param ip
+ * @param port
+ * @param url
+ * @param requestBody
+ * @return
+ * @throws ClientProtocolException
+ * @throws IOException
+ */
+ public static RestResponse post(String ip, Integer port, String url)
+ throws ClientProtocolException, IOException {
+ return executeHttpDeleteDeploy(HttpMethod.DELETE, ip, port, url);
+ }
+
+}
|