summaryrefslogtreecommitdiffstats
path: root/lifecycle-test/src/main/java/org/openo/vnfsdk/lctest/common/util/RestfulClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'lifecycle-test/src/main/java/org/openo/vnfsdk/lctest/common/util/RestfulClient.java')
-rw-r--r--lifecycle-test/src/main/java/org/openo/vnfsdk/lctest/common/util/RestfulClient.java168
1 files changed, 168 insertions, 0 deletions
diff --git a/lifecycle-test/src/main/java/org/openo/vnfsdk/lctest/common/util/RestfulClient.java b/lifecycle-test/src/main/java/org/openo/vnfsdk/lctest/common/util/RestfulClient.java
new file mode 100644
index 0000000..594cde1
--- /dev/null
+++ b/lifecycle-test/src/main/java/org/openo/vnfsdk/lctest/common/util/RestfulClient.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.openo.vnfsdk.lctest.common.util;
+
+import java.io.File;
+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.HttpClient;
+import org.apache.http.client.ResponseHandler;
+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.client.utils.URIBuilder;
+import org.apache.http.entity.ContentType;
+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.DefaultHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RestfulClient {
+ private static final String HTTP = "http";
+ private static final Logger logger = LoggerFactory.getLogger(RestfulClient.class);
+
+ enum HttpMethod {
+ GET, POST, PUT, DELETE
+ }
+
+ /**
+ * execute http.
+ * @param method http method
+ * @param ip ip
+ * @param port port
+ * @param url url
+ * @param body http body
+ * @return RestResponse
+ */
+ public static RestResponse executeHttp(HttpMethod method, String ip, int port, String url,
+ HttpEntity body) {
+ CloseableHttpClient httpclient = HttpClients.createDefault();
+ HttpResponse httpResponse = null;
+ RestResponse result = new RestResponse();
+ try {
+ // specify the host, protocol, and port
+ HttpHost target = new HttpHost(ip, port, HTTP);
+ // specify the get request
+ HttpRequest request = getRequest(method, url, body);
+ httpResponse = httpclient.execute(target, request);
+ HttpEntity entity = httpResponse.getEntity();
+ if (entity != null) {
+ result.setStatusCode(httpResponse.getStatusLine().getStatusCode());
+ result.setResult(EntityUtils.toString(entity));
+ }
+ } catch (Exception e1) {
+ logger.error("send get rest request error:", e1.getMessage());
+ } finally {
+ if (httpclient != null) {
+ try {
+ httpclient.close();
+ } catch (IOException e2) {
+ logger.error("close httpclient error:", e2.getMessage());
+ }
+ }
+ }
+ return result;
+ }
+
+ private 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;
+ }
+
+ public static RestResponse get(String ip, int port, String url) {
+ return executeHttp(HttpMethod.GET, ip, port, url, null);
+ }
+
+ public static RestResponse delete(String ip, int port, String url) {
+ return executeHttp(HttpMethod.DELETE, ip, port, url, null);
+ }
+
+ public static RestResponse post(String ip, int port, String url, HttpEntity requestBody) {
+ return executeHttp(HttpMethod.POST, ip, port, url, requestBody);
+ }
+
+ public static RestResponse sendPostRequest(String ip, String port, String url, String strJson)
+ {
+ RestResponse result = new RestResponse();
+ CloseableHttpClient httpClient = HttpClientBuilder.create().build();
+ HttpResponse httpResponse = null;
+ try
+ {
+ String urlPost = "http://" + ip + ":" + port + url;
+ logger.info("URL formed for Post, URL :" + urlPost);
+ logger.info("URL formed for Post, JSON :" + strJson);
+
+ HttpPost request = new HttpPost(urlPost);
+
+ StringEntity params = new StringEntity(strJson);
+ request.addHeader("content-type", "application/json");
+ request.setEntity(params);
+
+ httpResponse = httpClient.execute(request);
+ HttpEntity entity = httpResponse.getEntity();
+ if (entity != null)
+ {
+ result.setStatusCode(httpResponse.getStatusLine().getStatusCode());
+ result.setResult(EntityUtils.toString(entity));
+ }
+ }
+ catch (Exception ex)
+ {
+ logger.error("Send Post request error:", ex.getMessage());
+ }
+ finally
+ {
+ try {
+ if(null != httpClient) {
+ httpClient.close();
+ }
+ }
+ catch(IOException e){
+ logger.error("IOException :Send Post request error:", e.getMessage());
+ }
+ }
+ return result;
+ }
+}