summaryrefslogtreecommitdiffstats
path: root/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/http/HttpRequest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/http/HttpRequest.java')
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/http/HttpRequest.java897
1 files changed, 272 insertions, 625 deletions
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/http/HttpRequest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/http/HttpRequest.java
index a8ca77d055..2435b10dd5 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/http/HttpRequest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/http/HttpRequest.java
@@ -20,24 +20,6 @@
package org.openecomp.sdc.ci.tests.datatypes.http;
-import java.io.BufferedReader;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringWriter;
-import java.net.HttpURLConnection;
-import java.net.URI;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Scanner;
-
-import javax.net.ssl.HttpsURLConnection;
-
-import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.annotation.NotThreadSafe;
@@ -45,23 +27,29 @@ import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.entity.mime.MultipartEntityBuilder;
-import org.apache.http.entity.mime.content.FileBody;
-import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import sun.net.www.protocol.https.DefaultHostnameVerifier;
-import com.google.gson.Gson;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.net.URL;
+import java.nio.charset.Charset;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
public class HttpRequest {
static Logger logger = LoggerFactory.getLogger(HttpRequest.class.getName());
-
- public RestResponse httpSendGet(String url, Map<String, String> headers) throws IOException {
+
+// -----------------------------Http------------------------------------------------------------------------
+ public RestResponse httpSendGetInternal(String url, Map<String, String> headers) throws IOException {
RestResponse restResponse = new RestResponse();
url = url.replaceAll("\\s", "%20");
@@ -69,15 +57,7 @@ public class HttpRequest {
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
- // add request header
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
- }
-
- }
+ addHttpRequestHEaders(headers, con);
int responseCode = con.getResponseCode();
logger.debug("Send GET http request, url: {}",url);
@@ -85,293 +65,246 @@ public class HttpRequest {
StringBuffer response = new StringBuffer();
String result;
-
try {
result = IOUtils.toString(con.getInputStream());
response.append(result);
-
- } catch (Exception e) {
+ } catch (Exception e) {
+ logger.debug("Fail with exception", e);
}
-
try {
-
result = IOUtils.toString(con.getErrorStream());
response.append(result);
-
} catch (Exception e) {
+// logger.debug("Fail with exception", e);
}
logger.debug("Response body: {}" ,response);
// print result
-
- restResponse.setErrorCode(responseCode);
-
- if (response != null) {
- restResponse.setResponse(response.toString());
- }
-
- restResponse.setErrorCode(responseCode);
- Map<String, List<String>> headerFields = con.getHeaderFields();
- restResponse.setHeaderFields(headerFields);
- String responseMessage = con.getResponseMessage();
- restResponse.setResponseMessage(responseMessage);
-
+ setHttpResponseToObject(restResponse, con, responseCode, response);
con.disconnect();
return restResponse;
}
- public RestResponse httpsSendGet(String url, Map<String, String> headers) throws IOException {
+ public RestResponse httpSendByMethodInternal(String url, String method, String body, Map<String, String> headers) throws IOException {
RestResponse restResponse = new RestResponse();
URL obj = new URL(url);
- HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
- // optional default is GET
- con.setRequestMethod("GET");
- // add request header
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
- }
-
+ HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+// add request method
+ con.setRequestMethod(method);
+// add request headers
+ addHttpRequestHEaders(headers, con);
+ if (body != null && !body.isEmpty() && !method.equals("DELETE")) {
+// Send post request
+ con.setDoOutput(true);
+ DataOutputStream wr = new DataOutputStream(con.getOutputStream());
+ wr.writeBytes(body);
+ wr.flush();
+ wr.close();
}
int responseCode = con.getResponseCode();
- logger.debug("Send GET http request, url: {}",url);
+ logger.debug("Send {} http request, url: {}",method,url);
logger.debug("Response Code: {}",responseCode);
- StringBuffer response = new StringBuffer();
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
- }
- in.close();
- } catch (Exception e) {
- logger.debug("response body is null");
- }
-
+ StringBuffer response = generateHttpResponse(con, false);
String result;
-
try {
-
result = IOUtils.toString(con.getErrorStream());
response.append(result);
-
- } catch (Exception e2) {
- // result = null;
+ } catch (Exception e) {
+// logger.debug("Fail with exception", e);
}
logger.debug("Response body: {}",response);
+// print result
+ setHttpResponseToObject(restResponse, con, responseCode, response);
+ con.disconnect();
- // print result
+ return restResponse;
+ }
- restResponse.setErrorCode(responseCode);
+ public RestResponse httpSendDelete(String url, Map<String, String> headers) throws IOException {
+ if (url.matches("^(https)://.*$")){
+ return httpsSendDelete(url, headers);
+ }
+ return httpSendDeleteInternal(url, headers);
+ }
- if (response != null) {
- restResponse.setResponse(response.toString());
+ public RestResponse httpSendGet(String url, Map<String, String> headers) throws IOException {
+ if (url.matches("^(https)://.*$")){
+ return httpsSendGet(url, headers);
}
+ return httpSendGetInternal(url, headers);
+ }
- restResponse.setErrorCode(responseCode);
- // restResponse.setResponse(result);
- Map<String, List<String>> headerFields = con.getHeaderFields();
- restResponse.setHeaderFields(headerFields);
- String responseMessage = con.getResponseMessage();
- restResponse.setResponseMessage(responseMessage);
+ public RestResponse httpSendByMethod(String url, String method, String body, Map<String, String> headers) throws IOException {
+ if (url.matches("^(https)://.*$")){
+ return httpsSendByMethod(url, method, body, headers);
+ }
+ return httpSendByMethodInternal(url, method, body, headers);
+ }
- con.disconnect();
+ public RestResponse httpSendPost(String url, String body, Map<String, String> headers) throws IOException {
+ if (url.matches("^(https)://.*$")){
+ return httpsSendByMethod(url, "POST", body, headers);
+ }
+ return httpSendByMethod(url, "POST", body, headers);
+ }
- return restResponse;
+ public RestResponse httpSendPut(String url, String body, Map<String, String> headers) throws IOException {
+ if (url.matches("^(https)://.*$")){
+ return httpsSendByMethod(url, "PUT", body, headers);
+ }
+ return httpSendByMethod(url, "PUT", body, headers);
}
- public RestResponse httpSendByMethod(String url, String method, String body, Map<String, String> headers)
- throws IOException {
+
+ public RestResponse httpSendDeleteInternal(String url, Map<String, String> headers) throws IOException {
RestResponse restResponse = new RestResponse();
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
- // add request method
- con.setRequestMethod(method);
-
- // add request headers
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
- }
-
- }
- if (body != null && !body.isEmpty() && !method.equals("DELETE")) {
- // Send post request
- con.setDoOutput(true);
- DataOutputStream wr = new DataOutputStream(con.getOutputStream());
- wr.writeBytes(body);
- wr.flush();
- wr.close();
- }
-
- // con.connect();
+ addHttpRequestHEaders(headers, con);
+ con.setDoOutput(true);
+ con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
- logger.debug("Send {} http request, url: {}",method,url);
+ logger.debug("Send DELETE http request, url: {}",url);
logger.debug("Response Code: {}",responseCode);
- StringBuffer response = new StringBuffer();
-
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
- }
- in.close();
- } catch (Exception e) {
- // response = null;
- logger.debug("response body is null");
- }
-
+ StringBuffer response = generateHttpResponse(con, false);
String result;
try {
-
result = IOUtils.toString(con.getErrorStream());
response.append(result);
-
- } catch (Exception e2) {
- result = null;
+ } catch (Exception e) {
+// logger.debug("Fail with exception", e);
}
logger.debug("Response body: {}",response);
- // print result
-
- restResponse.setErrorCode(responseCode);
- // if (response == null) {
- // restResponse.setResponse(null);
- // } else {
- // restResponse.setResponse(response.toString());
- // }
-
- if (response != null) {
- restResponse.setResponse(response.toString());
- }
- Map<String, List<String>> headerFields = con.getHeaderFields();
- restResponse.setHeaderFields(headerFields);
- String responseMessage = con.getResponseMessage();
- restResponse.setResponseMessage(responseMessage);
-
+// print result
+ setHttpResponseToObject(restResponse, con, responseCode, response);
con.disconnect();
- return restResponse;
+ return restResponse;
}
- public RestResponse sendHttpPost(String url, String body, Map<String, String> headers) throws IOException {
-
- RestResponse restResponse = new RestResponse();
- URL obj = new URL(url);
- HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+ public static RestResponse sendHttpPostWithEntity(HttpEntity requestEntity, String url, Map<String, String> headers) throws IOException {
+ CloseableHttpResponse response = null;
+ CloseableHttpClient client = HttpClients.createDefault();
+ try {
+ HttpPost httpPost = new HttpPost(url);
+ RestResponse restResponse = new RestResponse();
+ for (Entry<String, String> entry : headers.entrySet()) {
+ httpPost.addHeader(entry.getKey(), entry.getValue());
+ }
- // add request method
- con.setRequestMethod("POST");
+ httpPost.setEntity(requestEntity);
+ response = client.execute(httpPost);
+ HttpEntity responseEntity = response.getEntity();
+ String responseBody = null;
+ if (responseEntity != null) {
+ InputStream instream = responseEntity.getContent();
+ StringWriter writer = new StringWriter();
+ IOUtils.copy(instream, writer);
+ responseBody = writer.toString();
+ try {
- // add request headers
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
+ } finally {
+ instream.close();
+ }
}
- }
- // Send post request
- if (body != null) {
- con.setDoOutput(true);
- DataOutputStream wr = new DataOutputStream(con.getOutputStream());
- wr.writeBytes(body);
- wr.flush();
- wr.close();
- }
+ restResponse.setErrorCode(response.getStatusLine().getStatusCode());
+ restResponse.setResponse(responseBody);
- // con.connect();
+ return restResponse;
- int responseCode = con.getResponseCode();
- logger.debug("Send POST http request, url: {}",url);
- logger.debug("Response Code: {}",responseCode);
+ } finally {
+ closeResponse(response);
+ closeHttpClient(client);
- StringBuffer response = new StringBuffer();
+ }
+ }
+
+ private static void closeHttpClient(CloseableHttpClient client) {
try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
+ if (client != null) {
+ client.close();
}
- in.close();
- } catch (Exception e) {
- logger.debug("response body is null");
+ } catch (IOException e) {
+ logger.debug("failed to close client or response: ", e);
}
+ }
- String result;
-
+ private static void closeResponse(CloseableHttpResponse response) {
try {
-
- result = IOUtils.toString(con.getErrorStream());
- response.append(result);
-
- } catch (Exception e2) {
- result = null;
+ if (response != null) {
+ response.close();
+ }
+ } catch (IOException e) {
+ logger.debug("failed to close client or response: ", e);
}
- logger.debug("Response body: {}",response);
+ }
- // print result
- restResponse.setErrorCode(responseCode);
+ // -----------------------------Https------------------------------------------------------------------------
+ public RestResponse httpsSendGet(String url, Map<String, String> headers) throws IOException {
- if (response != null) {
- restResponse.setResponse(response.toString());
+ RestResponse restResponse = new RestResponse();
+ url = url.replaceAll("\\s", "%20");
+ URL obj = new URL(null, url, new sun.net.www.protocol.https.Handler());
+ HttpsURLConnection con = (HttpsURLConnection)obj.openConnection();
+// optional default is GET
+ con.setRequestMethod("GET");
+ HostnameVerifier hostnameVerifier = new DefaultHostnameVerifier();
+ con.setHostnameVerifier(hostnameVerifier);
+ addHttpsRequestHeaders(headers, con);
+ Boolean multiPart = false;
+ if(headers.get(HttpHeaderEnum.ACCEPT.getValue()) != null) {
+ if (headers.get(HttpHeaderEnum.ACCEPT.getValue()).equals(BaseRestUtils.acceptMultipartHeader)) {
+ multiPart = true;
+ }
}
+ int responseCode = con.getResponseCode();
+ logger.debug("Send GET http request, url: {}",url);
+ logger.debug("Response Code: {}",responseCode);
- Map<String, List<String>> headerFields = con.getHeaderFields();
- restResponse.setHeaderFields(headerFields);
- String responseMessage = con.getResponseMessage();
- restResponse.setResponseMessage(responseMessage);
-
+ StringBuffer response = generateHttpsResponse(con, multiPart);
+ String result;
+ try {
+ if(con.getErrorStream()!=null) {
+ result = IOUtils.toString(con.getErrorStream());
+ response.append(result);
+ }
+ } catch (Exception e) {
+// logger.debug("Fail with exception", e);
+ }
+ logger.debug("Response body: {}",response);
+// print result
+ setHttpsResponseToObject(restResponse, con, responseCode, response);
con.disconnect();
- return restResponse;
-
- }
- public RestResponse httpSendPost(String url, String body, Map<String, String> headers) throws IOException {
- return httpSendPost(url, body, headers, "POST");
+ return restResponse;
}
- public RestResponse httpSendPut(String url, String body, Map<String, String> headers) throws IOException {
- return httpSendPost(url, body, headers, "PUT");
- }
- public RestResponse httpSendPost(String url, String body, Map<String, String> headers, String methodType)
- throws IOException {
+ public RestResponse httpsSendPost(String url, String body, Map<String, String> headers) throws IOException {
RestResponse restResponse = new RestResponse();
- URL obj = new URL(url);
- HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-
- // add request method
- con.setRequestMethod(methodType);
-
- // add request headers
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
- }
- }
-
- // Send post request
+ URL obj = new URL(null, url, new sun.net.www.protocol.https.Handler());
+ HttpsURLConnection con = (HttpsURLConnection)obj.openConnection();
+ HostnameVerifier hostnameVerifier = new DefaultHostnameVerifier();
+ con.setHostnameVerifier(hostnameVerifier);
+// add request method
+ con.setRequestMethod("POST");
+// add request headers
+ addHttpRequestHEaders(headers, con);
+// Send post request
if (body != null) {
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
@@ -379,310 +312,108 @@ public class HttpRequest {
wr.flush();
wr.close();
}
-
- // con.connect();
-
int responseCode = con.getResponseCode();
logger.debug("Send POST http request, url: {}",url);
logger.debug("Response Code: {}",responseCode);
- StringBuffer response = new StringBuffer();
+ StringBuffer response = generateHttpsResponse(con, false);
+ String result;
try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
+ if(con.getErrorStream()!=null) {
+ result = IOUtils.toString(con.getErrorStream());
+ response.append(result);
}
- in.close();
} catch (Exception e) {
- logger.debug("response body is null");
- }
-
- String result;
-
- try {
-
- result = IOUtils.toString(con.getErrorStream());
- response.append(result);
-
- } catch (Exception e2) {
- result = null;
+// logger.debug("Fail with exception", e);
}
logger.debug("Response body: {}",response);
-
- // print result
-
- restResponse.setErrorCode(responseCode);
-
- if (response != null) {
- restResponse.setResponse(response.toString());
- }
-
- Map<String, List<String>> headerFields = con.getHeaderFields();
- restResponse.setHeaderFields(headerFields);
- String responseMessage = con.getResponseMessage();
- restResponse.setResponseMessage(responseMessage);
-
+// print result
+ setHttpResponseToObject(restResponse, con, responseCode, response);
con.disconnect();
- return restResponse;
-
- }
-
- public RestResponse httpSendDeleteWithBody2(String url, String body, Map<String, String> headers)
- throws ClientProtocolException, IOException {
-
- CloseableHttpClient httpclient = HttpClients.createDefault();
- RestResponse restResponse = new RestResponse();
- HttpDeleteWithBody httpDelete = new HttpDeleteWithBody(url);
-
- // add request headers
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- httpDelete.addHeader(key, value);
- }
- }
-
- // add body to request
- StringEntity input = new StringEntity(body, ContentType.APPLICATION_JSON);
- httpDelete.setEntity(input);
-
- // execute request
- CloseableHttpResponse response = httpclient.execute(httpDelete);
-
- restResponse.setErrorCode(response.getStatusLine().getStatusCode());
return restResponse;
}
- public RestResponse httpSendDeleteWithBody(String url, String body, Map<String, String> headers)
- throws IOException {
+ public RestResponse httpsSendByMethod(String url, String method, String body, Map<String, String> headers) throws IOException {
RestResponse restResponse = new RestResponse();
- URL obj = new URL(url);
- HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-
- // add request method
- con.setRequestMethod("DELETE");
-
- // add request headers
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
- }
+ URL obj = new URL(null, url, new sun.net.www.protocol.https.Handler());
+ HttpsURLConnection con = (HttpsURLConnection)obj.openConnection();
+ HostnameVerifier hostnameVerifier = new DefaultHostnameVerifier();
+ con.setHostnameVerifier(hostnameVerifier);
+// add request method
+ con.setRequestMethod(method);
+// add request headers
+ addHttpRequestHEaders(headers, con);
+ if (body != null && !body.isEmpty() && !method.equals("DELETE")) {
+// Send post request
+ con.setDoOutput(true);
+ DataOutputStream wr = new DataOutputStream(con.getOutputStream());
+ wr.writeBytes(body);
+ wr.flush();
+ wr.close();
}
- // Send post request
- con.setDoOutput(true);
- DataOutputStream wr = new DataOutputStream(con.getOutputStream());
- wr.writeBytes(body);
- wr.flush();
- wr.close();
-
- // con.connect();
-
int responseCode = con.getResponseCode();
- logger.debug("Send DELETE http request, url: {}",url);
+ logger.debug("Send {} http request, url: {}",method,url);
logger.debug("Response Code: {}",responseCode);
- StringBuffer response = new StringBuffer();
+ StringBuffer response = generateHttpResponse(con, false);
+ String result;
try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
+ if(con.getErrorStream()!=null) {
+ result = IOUtils.toString(con.getErrorStream());
+ response.append(result);
}
- in.close();
} catch (Exception e) {
- logger.debug("response body is null");
+// logger.debug("Fail with exception", e);
}
-
- String result;
-
- try {
-
- result = IOUtils.toString(con.getErrorStream());
- response.append(result);
-
- } catch (Exception e2) {
- result = null;
- }
- logger.debug("Response body: {}", response);
-
- // print result
-
- restResponse.setErrorCode(responseCode);
-
- if (response != null) {
- restResponse.setResponse(response.toString());
- }
-
- Map<String, List<String>> headerFields = con.getHeaderFields();
- restResponse.setHeaderFields(headerFields);
- String responseMessage = con.getResponseMessage();
- restResponse.setResponseMessage(responseMessage);
-
+ logger.debug("Response body: {}",response);
+// print result
+ setHttpResponseToObject(restResponse, con, responseCode, response);
con.disconnect();
- return restResponse;
+ return restResponse;
}
- public RestResponse httpSendPostWithOutBody(String url, Map<String, String> headers) throws IOException {
- RestResponse restResponse = new RestResponse();
- URL obj = new URL(url);
- HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-
- // add request method
- con.setRequestMethod("POST");
+ public RestResponse httpsSendDelete(String url, Map<String, String> headers) throws IOException {
- // add request headers
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
- }
- }
-
- // con.connect();
+ RestResponse restResponse = new RestResponse();
+ URL obj = new URL(null, url, new sun.net.www.protocol.https.Handler());
+ HttpsURLConnection con = (HttpsURLConnection)obj.openConnection();
+ HostnameVerifier hostnameVerifier = new DefaultHostnameVerifier();
+ con.setHostnameVerifier(hostnameVerifier);
+// add request headers
+ addHttpRequestHEaders(headers, con);
+ con.setDoOutput(true);
+ con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
- logger.debug("Send POST http request, url: {}",url);
+ logger.debug("Send DELETE http request, url: {}",url);
logger.debug("Response Code: {}",responseCode);
- StringBuffer response = new StringBuffer();
-
+ StringBuffer response = generateHttpsResponse(con, false);
+ String result;
try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
+ if(con.getErrorStream()!=null) {
+ result = IOUtils.toString(con.getErrorStream());
+ response.append(result);
}
- in.close();
} catch (Exception e) {
- // response = null;
- logger.debug("response body is null");
- }
-
- String result;
- try {
-
- result = IOUtils.toString(con.getErrorStream());
- response.append(result);
-
- } catch (Exception e2) {
- result = null;
+// logger.debug("Fail with exception", e);
}
logger.debug("Response body: {}",response);
-
- // print result
-
- restResponse.setErrorCode(responseCode);
- // if (response == null) {
- // restResponse.setResponse(null);
- // } else {
- // restResponse.setResponse(response.toString());
- // }
-
- if (response != null) {
- restResponse.setResponse(response.toString());
- }
-
- Map<String, List<String>> headerFields = con.getHeaderFields();
- restResponse.setHeaderFields(headerFields);
- String responseMessage = con.getResponseMessage();
- restResponse.setResponseMessage(responseMessage);
-
+// print result
+ setHttpResponseToObject(restResponse, con, responseCode, response);
con.disconnect();
- return restResponse;
-
- }
-
- public RestResponse httpSendPostMultipart(String url, Map<String, String> headers, String jsonLocation,
- String zipLocation) throws IOException {
-
- Gson gson = new Gson();
- String gsonToSend = null;
- RestResponse restResponse = new RestResponse();
- BufferedReader br = null;
- //
- //
- //
- //
- // try {
- //
- // String sCurrentLine;
- //
- // br = new BufferedReader(new FileReader(jsonLocation));
- //
- // while ((sCurrentLine = br.readLine()) != null) {
- // System.out.println(sCurrentLine);
- // }
- //
- // } catch (IOException e) {
- // e.printStackTrace();
- // } finally {
- // try {
- // if (br != null)br.close();
- // gsonToSend = br.toString();
- // } catch (IOException ex) {
- // ex.printStackTrace();
- // }
- // }
-
- gsonToSend = new Scanner(new File(jsonLocation)).useDelimiter("\\Z").next();
- logger.debug("gsonToSend: {}",gsonToSend);
-
- MultipartEntityBuilder mpBuilder = MultipartEntityBuilder.create();
- mpBuilder.addPart("resourceZip", new FileBody(new File(zipLocation)));
- mpBuilder.addPart("resourceMetadata", new StringBody(gsonToSend, ContentType.APPLICATION_JSON));
-
- HttpPost httpPost = new HttpPost(url);
- httpPost.addHeader("USER_ID", "adminid");
- httpPost.setEntity(mpBuilder.build());
-
- CloseableHttpClient client = HttpClients.createDefault();
- CloseableHttpResponse response = client.execute(httpPost);
- try {
- logger.debug("----------------------------------------");
- logger.debug("response.getStatusLine(): {}",response.getStatusLine());
- HttpEntity resEntity = response.getEntity();
- if (resEntity != null) {
- logger.debug("Response content length: {}",resEntity.getContentLength());
- }
- EntityUtils.consume(resEntity);
- } finally {
-
- response.close();
- client.close();
- }
-
- restResponse.setErrorCode(response.getStatusLine().getStatusCode());
- restResponse.setResponse(response.getEntity().toString());
return restResponse;
-
}
- public RestResponse httpSendPostWithAuth(String url, String body, Map<String, String> headers, String username,
- String password) throws IOException {
-
- String userPassword = username + ":" + password;
- String encoding = Base64.encodeBase64String(userPassword.getBytes());
- RestResponse restResponse = new RestResponse();
- URL obj = new URL(url);
- HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-
- // add request method
- con.setRequestMethod("POST");
-
- con.setRequestProperty("Authorization", "Basic " + encoding);
-
- // add request headers
+ // ---------------------------------------
+ private void addHttpsRequestHeaders(Map<String, String> headers, HttpsURLConnection con) {
+ // add request header
if (headers != null) {
for (Entry<String, String> header : headers.entrySet()) {
String key = header.getKey();
@@ -691,40 +422,24 @@ public class HttpRequest {
}
}
+ }
- // Send post request
- con.setDoOutput(true);
- DataOutputStream wr = new DataOutputStream(con.getOutputStream());
- wr.writeBytes(body);
- wr.flush();
- wr.close();
-
- // con.connect();
-
- int responseCode = con.getResponseCode();
- logger.debug("Send POST http request, url: {}",url);
- logger.debug("Response Code: {}",responseCode);
-
- StringBuffer response = new StringBuffer();
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
+ private void addHttpRequestHEaders(Map<String, String> headers, HttpURLConnection con) {
+ // add request header
+ if (headers != null) {
+ for (Entry<String, String> header : headers.entrySet()) {
+ String key = header.getKey();
+ String value = header.getValue();
+ con.setRequestProperty(key, value);
}
- in.close();
- } catch (Exception e) {
- response = null;
}
- logger.debug("Response body: {}",response);
-
- // print result
+ }
+ private void setHttpResponseToObject(RestResponse restResponse, HttpURLConnection con, int responseCode, StringBuffer response) throws IOException {
restResponse.setErrorCode(responseCode);
- if (response == null) {
- restResponse.setResponse(null);
- } else {
+
+ if (response != null) {
restResponse.setResponse(response.toString());
}
@@ -732,135 +447,67 @@ public class HttpRequest {
restResponse.setHeaderFields(headerFields);
String responseMessage = con.getResponseMessage();
restResponse.setResponseMessage(responseMessage);
-
- con.disconnect();
- return restResponse;
-
}
- public RestResponse httpSendDelete(String url, Map<String, String> headers) throws IOException {
-
- RestResponse restResponse = new RestResponse();
- URL obj = new URL(url);
- HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-
- if (headers != null) {
- for (Entry<String, String> header : headers.entrySet()) {
- String key = header.getKey();
- String value = header.getValue();
- con.setRequestProperty(key, value);
- }
-
- }
-
- con.setDoOutput(true);
- con.setRequestMethod("DELETE");
- int responseCode = con.getResponseCode();
- logger.debug("Send DELETE http request, url: {}",url);
- logger.debug("Response Code: {}",responseCode);
-
+ private StringBuffer generateHttpResponse(HttpURLConnection con, Boolean isMultiPart) {
StringBuffer response = new StringBuffer();
-
+ StringWriter writer = new StringWriter();
try {
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
+ if(isMultiPart) {
+ IOUtils.copy((con.getInputStream()), writer, Charset.forName("UTF-8"));
+ response = writer.getBuffer();
+ }else {
+
+ BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
+ String inputLine;
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ in.close();
}
- in.close();
} catch (Exception e) {
logger.debug("response body is null");
}
- String result;
-
- try {
-
- result = IOUtils.toString(con.getErrorStream());
- response.append(result);
-
- } catch (Exception e2) {
- result = null;
- }
- logger.debug("Response body: {}",response);
-
- // print result
-
- restResponse.setErrorCode(responseCode);
+ return response;
+ }
+ private void setHttpsResponseToObject(RestResponse restResponse, HttpsURLConnection con, int responseCode, StringBuffer response) throws IOException {
if (response != null) {
restResponse.setResponse(response.toString());
}
- restResponse.setErrorCode(con.getResponseCode());
+ restResponse.setErrorCode(responseCode);
+ // restResponse.setResponse(result);
Map<String, List<String>> headerFields = con.getHeaderFields();
restResponse.setHeaderFields(headerFields);
String responseMessage = con.getResponseMessage();
restResponse.setResponseMessage(responseMessage);
-
- con.disconnect();
-
- return restResponse;
}
- public static RestResponse sendHttpPostWithEntity(HttpEntity requestEntity, String url, Map<String, String> headers)
- throws IOException, ClientProtocolException {
- CloseableHttpResponse response = null;
- CloseableHttpClient client = HttpClients.createDefault();
+ private StringBuffer generateHttpsResponse(HttpsURLConnection con, Boolean isMultiPart) {
+ StringBuffer response = new StringBuffer();
+ StringWriter writer = new StringWriter();
try {
- HttpPost httpPost = new HttpPost(url);
- RestResponse restResponse = new RestResponse();
- for (Entry<String, String> entry : headers.entrySet()) {
- httpPost.addHeader(entry.getKey(), entry.getValue());
- }
-
- httpPost.setEntity(requestEntity);
- response = client.execute(httpPost);
- HttpEntity responseEntity = response.getEntity();
- String responseBody = null;
- if (responseEntity != null) {
- InputStream instream = responseEntity.getContent();
- StringWriter writer = new StringWriter();
- IOUtils.copy(instream, writer);
- responseBody = writer.toString();
- try {
-
- } finally {
- instream.close();
+ if(isMultiPart) {
+ IOUtils.copy((con.getInputStream()), writer, Charset.forName("UTF-8"));
+ response = writer.getBuffer();
+ }else {
+
+ BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
+ String inputLine;
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
}
+ in.close();
}
-
- restResponse.setErrorCode(response.getStatusLine().getStatusCode());
- restResponse.setResponse(responseBody);
-
- return restResponse;
-
- } finally {
- closeResponse(response);
- closeHttpClient(client);
-
+ } catch (Exception e) {
+ logger.debug("response body is null");
}
- }
- private static void closeHttpClient(CloseableHttpClient client) {
- try {
- if (client != null) {
- client.close();
- }
- } catch (IOException e) {
- logger.debug("failed to close client or response: ", e);
- }
+ return response;
}
- private static void closeResponse(CloseableHttpResponse response) {
- try {
- if (response != null) {
- response.close();
- }
- } catch (IOException e) {
- logger.debug("failed to close client or response: ", e);
- }
- }
@NotThreadSafe
class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase {