List of usage examples for javax.net.ssl HttpsURLConnection getHeaderFields
public Map<String, List<String>> getHeaderFields()
From source file:org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.java
/** * Send HTTPS request using {@link HttpsURLConnection} in JSON format. * /*from w w w .j av a 2s . c o m*/ * @param endPoint String End point URL. * @param httpsMethod String HTTPS method type (POST, PUT) * @param headersMap Map<String, String> Headers need to send to the end point. * @param fileName File name of the attachment to set as binary content. * @return RestResponse object. * @throws JSONException * @throws IOException */ protected RestResponse<JSONObject> sendBinaryContentForJsonResponseHTTPS(String endPoint, String httpMethod, Map<String, String> headersMap, String fileName) throws IOException, JSONException { HttpsURLConnection httpsConnection = writeRequestHTTPS(endPoint, httpMethod, RestResponse.JSON_TYPE, headersMap, fileName, true); String responseString = readResponse(httpsConnection); RestResponse<JSONObject> restResponse = new RestResponse<JSONObject>(); restResponse.setHttpStatusCode(httpsConnection.getResponseCode()); restResponse.setHeadersMap(httpsConnection.getHeaderFields()); if (responseString != null) { JSONObject jsonObject = null; if (isValidJSON(responseString)) { jsonObject = new JSONObject(responseString); } else { jsonObject = new JSONObject(); jsonObject.put("output", responseString); } restResponse.setBody(jsonObject); } return restResponse; }
From source file:org.openecomp.sdc.ci.tests.datatypes.http.HttpRequest.java
public RestResponse httpsSendGet(String url, 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); }/*from w ww. j ava2 s. c o m*/ } int responseCode = con.getResponseCode(); logger.debug("Send GET 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) { 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); if (response != null) { restResponse.setResponse(response.toString()); } 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; }
From source file:org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.java
/** * Send HTTP request using {@link HttpsURLConnection} in XML format. * /*from w w w. j a va2 s . com*/ * @param endPoint String End point URL. * @param httpMethod String HTTP method type (GET, POST, PUT etc.) * @param headersMap Map<String, String> Headers need to send to the end point. * @param requestFileName String File name of the file which contains request body data. * @param parametersMap Map<String, String> Additional parameters which is not predefined in the * properties file. * @param isIgnoreHostVerification boolean flag to ignore host verification. * @return RestResponse * @throws IOException * @throws XMLStreamException */ protected RestResponse<OMElement> sendXmlRestRequestHTTPS(String endPoint, String httpMethod, Map<String, String> headersMap, String requestFileName, Map<String, String> parametersMap, boolean isIgnoreHostVerification) throws IOException, XMLStreamException { HttpsURLConnection httpsConnection = writeRequestHTTPS(endPoint, httpMethod, RestResponse.XML_TYPE, headersMap, requestFileName, parametersMap, isIgnoreHostVerification); String responseString = readResponseHTTPS(httpsConnection); RestResponse<OMElement> restResponse = new RestResponse<OMElement>(); restResponse.setHttpStatusCode(httpsConnection.getResponseCode()); restResponse.setHeadersMap(httpsConnection.getHeaderFields()); if (responseString != null) { if (!isValidXML(responseString)) { responseString = "<output>" + responseString + "</output>"; } restResponse.setBody(AXIOMUtil.stringToOM(responseString)); } return restResponse; }
From source file:org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.java
/** * Send HTTP request to using {@link HttpsURLConnection} in JSON format. * //from w ww. ja va 2s.co m * @param endPoint String End point URL. * @param httpMethod String HTTP method type (GET, POST, PUT etc.) * @param headersMap Map<String, String> Headers need to send to the end point. * @param requestFileName String File name of the file which contains request body data. * @param parametersMap Map<String, String> Additional parameters which is not predefined in the * properties file. * @param isIgnoreHostVerification boolean flag to ignore host verification. * @return RestResponse object. * @throws JSONException * @throws IOException */ protected RestResponse<JSONObject> sendJsonRestRequestHTTPS(String endPoint, String httpMethod, Map<String, String> headersMap, String requestFileName, Map<String, String> parametersMap, boolean isIgnoreHostVerification) throws IOException, JSONException { HttpsURLConnection httpsConnection = writeRequestHTTPS(endPoint, httpMethod, RestResponse.JSON_TYPE, headersMap, requestFileName, parametersMap, isIgnoreHostVerification); String responseString = readResponseHTTPS(httpsConnection); RestResponse<JSONObject> restResponse = new RestResponse<JSONObject>(); restResponse.setHttpStatusCode(httpsConnection.getResponseCode()); restResponse.setHeadersMap(httpsConnection.getHeaderFields()); if (responseString != null) { JSONObject jsonObject = null; if (isValidJSON(responseString)) { jsonObject = new JSONObject(responseString); } else { jsonObject = new JSONObject(); jsonObject.put("output", responseString); } restResponse.setBody(jsonObject); } return restResponse; }
From source file:org.openhab.binding.amazonechocontrol.internal.Connection.java
public HttpsURLConnection makeRequest(String verb, String url, @Nullable String postData, boolean json, boolean autoredirect, @Nullable Map<String, String> customHeaders) throws IOException, URISyntaxException { String currentUrl = url;//ww w . j a v a2 s.c o m for (int i = 0; i < 30; i++) // loop for handling redirect, using automatic redirect is not possible, because // all response headers must be catched { int code; HttpsURLConnection connection = null; try { logger.debug("Make request to {}", url); connection = (HttpsURLConnection) new URL(currentUrl).openConnection(); connection.setRequestMethod(verb); connection.setRequestProperty("Accept-Language", "en-US"); if (customHeaders == null || !customHeaders.containsKey("User-Agent")) { connection.setRequestProperty("User-Agent", userAgent); } connection.setRequestProperty("Accept-Encoding", "gzip"); connection.setRequestProperty("DNT", "1"); connection.setRequestProperty("Upgrade-Insecure-Requests", "1"); if (customHeaders != null) { for (String key : customHeaders.keySet()) { String value = customHeaders.get(key); if (StringUtils.isNotEmpty(value)) { connection.setRequestProperty(key, value); } } } connection.setInstanceFollowRedirects(false); // add cookies URI uri = connection.getURL().toURI(); if (customHeaders == null || !customHeaders.containsKey("Cookie")) { StringBuilder cookieHeaderBuilder = new StringBuilder(); for (HttpCookie cookie : cookieManager.getCookieStore().get(uri)) { if (cookieHeaderBuilder.length() > 0) { cookieHeaderBuilder.append(";"); } cookieHeaderBuilder.append(cookie.getName()); cookieHeaderBuilder.append("="); cookieHeaderBuilder.append(cookie.getValue()); if (cookie.getName().equals("csrf")) { connection.setRequestProperty("csrf", cookie.getValue()); } } if (cookieHeaderBuilder.length() > 0) { String cookies = cookieHeaderBuilder.toString(); connection.setRequestProperty("Cookie", cookies); } } if (postData != null) { logger.debug("{}: {}", verb, postData); // post data byte[] postDataBytes = postData.getBytes(StandardCharsets.UTF_8); int postDataLength = postDataBytes.length; connection.setFixedLengthStreamingMode(postDataLength); if (json) { connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); } else { connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); } connection.setRequestProperty("Content-Length", Integer.toString(postDataLength)); if (verb == "POST") { connection.setRequestProperty("Expect", "100-continue"); } connection.setDoOutput(true); OutputStream outputStream = connection.getOutputStream(); outputStream.write(postDataBytes); outputStream.close(); } // handle result code = connection.getResponseCode(); String location = null; // handle response headers Map<String, List<String>> headerFields = connection.getHeaderFields(); for (Map.Entry<String, List<String>> header : headerFields.entrySet()) { String key = header.getKey(); if (StringUtils.isNotEmpty(key)) { if (key.equalsIgnoreCase("Set-Cookie")) { // store cookie for (String cookieHeader : header.getValue()) { if (StringUtils.isNotEmpty(cookieHeader)) { List<HttpCookie> cookies = HttpCookie.parse(cookieHeader); for (HttpCookie cookie : cookies) { cookieManager.getCookieStore().add(uri, cookie); } } } } if (key.equalsIgnoreCase("Location")) { // get redirect location location = header.getValue().get(0); if (StringUtils.isNotEmpty(location)) { location = uri.resolve(location).toString(); // check for https if (location.toLowerCase().startsWith("http://")) { // always use https location = "https://" + location.substring(7); logger.debug("Redirect corrected to {}", location); } } } } } if (code == 200) { logger.debug("Call to {} succeeded", url); return connection; } if (code == 302 && location != null) { logger.debug("Redirected to {}", location); currentUrl = location; if (autoredirect) { continue; } return connection; } } catch (IOException e) { if (connection != null) { connection.disconnect(); } logger.warn("Request to url '{}' fails with unkown error", url, e); throw e; } catch (Exception e) { if (connection != null) { connection.disconnect(); } throw e; } if (code != 200) { throw new HttpException(code, verb + " url '" + url + "' failed: " + connection.getResponseMessage()); } } throw new ConnectionException("Too many redirects"); }
From source file:com.kimbrelk.da.oauth2.OAuth2.java
protected final JSONObject requestJSON(Verb verb, String url, String postData) { try {//from ww w . jav a 2s . c om mLog.append("SEND:\n"); HttpsURLConnection connection = (HttpsURLConnection) new URL(url).openConnection(); connection.setRequestProperty("User-Agent", mUserAgent); connection.setRequestProperty("dA-minor-version", "" + VERSION.getMinor()); connection.setReadTimeout(30000); connection.setConnectTimeout(30000); mLog.append(verb.toString() + " "); mLog.append(url); mLog.append("\n"); connection.setRequestMethod(verb.toString()); if (verb == Verb.POST) { mLog.append(postData); mLog.append("\n"); connection.setDoOutput(true); connection.setDoInput(true); //connection.setRequestProperty("Authorization", "Basic " + base64(CLIENT_ID + ":" + loadLast())); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("Content-Length", "" + postData.length()); connection.connect(); OutputStream os = connection.getOutputStream(); os.write(postData.getBytes()); os.flush(); } else if (verb == Verb.GET) { connection.setDoOutput(false); connection.setDoInput(true); connection.connect(); } mLog.append("\nRECV:\n"); try { InputStream is = connection.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader in = new BufferedReader(isr); String line = ""; String page = ""; while ((line = in.readLine()) != null) { page += line; } mLog.append(page); mLog.append("\n\n"); return new JSONObject(page); } catch (Exception e) { try { JSONObject json = new JSONObject(); json.put("status", "error"); try { InputStream is = connection.getErrorStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader in = new BufferedReader(isr); String line = ""; String page = ""; while ((line = in.readLine()) != null) { page += line; } mLog.append(page); mLog.append("\n\n"); return new JSONObject(page); } catch (Exception err) { } try { if (connection.getResponseCode() == 403 || connection.getResponseCode() == 429) { json.put("error_description", RespError.RATE_LIMIT.getDescription()); json.put("error", RespError.RATE_LIMIT.getType()); return json; } } catch (IOException er) { } String str = ""; str += "URL: " + url.split("[?]+")[0] + "\n"; //str += "POST Data: " + postData + "\n"; str += "\n"; for (int a = 0; a < connection.getHeaderFields().size() - 1; a++) { str += connection.getHeaderFieldKey(a) + ": " + connection.getHeaderField(a) + "\n"; } json.put("error_description", str); json.put("error", RespError.REQUEST_FAILED.getType()); return json; } catch (Exception er) { throw e; } } finally { connection.disconnect(); } } catch (Exception e) { try { e.printStackTrace(); JSONObject json = new JSONObject(); json.put("status", "error"); json.put("error", RespError.REQUEST_FAILED.getType()); json.put("error_description", RespError.REQUEST_FAILED.getDescription() + " : " + e); return json; } catch (JSONException er) { er.printStackTrace(); return null; } } }