List of usage examples for org.springframework.http.client HttpComponentsClientHttpRequestFactory createRequest
@Override public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException
From source file:org.openflamingo.uploader.handler.HttpToLocalHandler.java
/** * HTTP URL? .//from w ww . java2s. c om * * @param http HTTP * @return HTTP Response String * @throws Exception HTTP ? ?? ? ? */ private String getResponse(Http http) throws Exception { jobLogger.info("HTTP URL? ? ."); String url = jobContext.getValue(http.getUrl()); String method = jobContext.getValue(http.getMethod().getType()); String body = jobContext.getValue(http.getBody()); jobLogger.info("HTTP URL Information :"); jobLogger.info("\tURL = {}", url); jobLogger.info("\tMethod = {}", method); HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(); ClientHttpRequest request = null; if ("POST".equals(method)) { request = factory.createRequest(new java.net.URI(url), POST); } else { request = factory.createRequest(new java.net.URI(url), GET); } if (http.getHeaders() != null && http.getHeaders().getHeader().size() > 0) { List<Header> header = http.getHeaders().getHeader(); jobLogger.info("HTTP Header :", new String[] {}); for (Header h : header) { String name = h.getName(); String value = jobContext.getValue(h.getValue()); request.getHeaders().add(name, value); jobLogger.info("\t{} = {}", name, value); } } String responseBodyAsString = null; ClientHttpResponse response = null; try { response = request.execute(); responseBodyAsString = new String(FileCopyUtils.copyToByteArray(response.getBody()), Charset.defaultCharset()); jobLogger.debug("HTTP ? ? ? .\n{}", responseBodyAsString); jobLogger.info("HTTP ? . ? '{}({})'.", response.getStatusText(), response.getRawStatusCode()); if (response.getRawStatusCode() != HttpStatus.ORDINAL_200_OK) { throw new SystemException(ExceptionUtils.getMessage( "HTTP URL ? . ? OK '{}({})' ? .", response.getStatusText(), response.getRawStatusCode())); } } catch (Exception ex) { ex.printStackTrace(); throw new SystemException( ExceptionUtils.getMessage("HTTP URL ? . ? : {}", ExceptionUtils.getRootCause(ex).getMessage()), ex); } finally { try { response.close(); } catch (Exception ex) { // Ignored } } return responseBodyAsString; }
From source file:com.evolveum.midpoint.notifications.impl.api.transports.SimpleSmsTransport.java
@Override public void send(Message message, String transportName, Event event, Task task, OperationResult parentResult) { OperationResult result = parentResult.createSubresult(DOT_CLASS + "send"); result.addArbitraryObjectCollectionAsParam("message recipient(s)", message.getTo()); result.addParam("message subject", message.getSubject()); SystemConfigurationType systemConfiguration = NotificationFunctionsImpl .getSystemConfiguration(cacheRepositoryService, result); if (systemConfiguration == null || systemConfiguration.getNotificationConfiguration() == null) { String msg = "No notifications are configured. SMS notification to " + message.getTo() + " will not be sent."; LOGGER.warn(msg);// w w w . java 2 s . c o m result.recordWarning(msg); return; } String smsConfigName = StringUtils.substringAfter(transportName, NAME + ":"); SmsConfigurationType found = null; for (SmsConfigurationType smsConfigurationType : systemConfiguration.getNotificationConfiguration() .getSms()) { if (StringUtils.isEmpty(smsConfigName) && smsConfigurationType.getName() == null || StringUtils.isNotEmpty(smsConfigName) && smsConfigName.equals(smsConfigurationType.getName())) { found = smsConfigurationType; break; } } if (found == null) { String msg = "SMS configuration '" + smsConfigName + "' not found. SMS notification to " + message.getTo() + " will not be sent."; LOGGER.warn(msg); result.recordWarning(msg); return; } SmsConfigurationType smsConfigurationType = found; String logToFile = smsConfigurationType.getLogToFile(); if (logToFile != null) { TransportUtil.logToFile(logToFile, TransportUtil.formatToFileNew(message, transportName), LOGGER); } String file = smsConfigurationType.getRedirectToFile(); if (file != null) { writeToFile(message, file, null, emptyList(), null, result); return; } if (smsConfigurationType.getGateway().isEmpty()) { String msg = "SMS gateway(s) are not defined, notification to " + message.getTo() + " will not be sent."; LOGGER.warn(msg); result.recordWarning(msg); return; } String from; if (message.getFrom() != null) { from = message.getFrom(); } else if (smsConfigurationType.getDefaultFrom() != null) { from = smsConfigurationType.getDefaultFrom(); } else { from = ""; } if (message.getTo().isEmpty()) { String msg = "There is no recipient to send the notification to."; LOGGER.warn(msg); result.recordWarning(msg); return; } List<String> to = message.getTo(); assert to.size() > 0; for (SmsGatewayConfigurationType smsGatewayConfigurationType : smsConfigurationType.getGateway()) { OperationResult resultForGateway = result.createSubresult(DOT_CLASS + "send.forGateway"); resultForGateway.addContext("gateway name", smsGatewayConfigurationType.getName()); try { ExpressionVariables variables = getDefaultVariables(from, to, message); HttpMethodType method = defaultIfNull(smsGatewayConfigurationType.getMethod(), HttpMethodType.GET); ExpressionType urlExpression = defaultIfNull(smsGatewayConfigurationType.getUrlExpression(), smsGatewayConfigurationType.getUrl()); String url = evaluateExpressionChecked(urlExpression, variables, "sms gateway request url", task, result); LOGGER.debug("Sending SMS to URL {} (method {})", url, method); if (url == null) { throw new IllegalArgumentException("No URL specified"); } List<String> headersList = evaluateExpressionsChecked( smsGatewayConfigurationType.getHeadersExpression(), variables, "sms gateway request headers", task, result); LOGGER.debug("Using request headers:\n{}", headersList); String encoding = defaultIfNull(smsGatewayConfigurationType.getBodyEncoding(), StandardCharsets.ISO_8859_1.name()); String body = evaluateExpressionChecked(smsGatewayConfigurationType.getBodyExpression(), variables, "sms gateway request body", task, result); LOGGER.debug("Using request body text (encoding: {}):\n{}", encoding, body); if (smsGatewayConfigurationType.getLogToFile() != null) { TransportUtil.logToFile(smsGatewayConfigurationType.getLogToFile(), formatToFile(message, url, headersList, body), LOGGER); } if (smsGatewayConfigurationType.getRedirectToFile() != null) { writeToFile(message, smsGatewayConfigurationType.getRedirectToFile(), url, headersList, body, resultForGateway); result.computeStatus(); return; } else { HttpClientBuilder builder = HttpClientBuilder.create(); String username = smsGatewayConfigurationType.getUsername(); ProtectedStringType password = smsGatewayConfigurationType.getPassword(); if (username != null) { CredentialsProvider provider = new BasicCredentialsProvider(); String plainPassword = password != null ? protector.decryptString(password) : null; UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(username, plainPassword); provider.setCredentials(AuthScope.ANY, credentials); builder = builder.setDefaultCredentialsProvider(provider); } HttpClient client = builder.build(); HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory( client); ClientHttpRequest request = requestFactory.createRequest(new URI(url), HttpUtil.toHttpMethod(method)); setHeaders(request, headersList); if (body != null) { request.getBody().write(body.getBytes(encoding)); } ClientHttpResponse response = request.execute(); LOGGER.debug("Result: " + response.getStatusCode() + "/" + response.getStatusText()); if (response.getStatusCode().series() != HttpStatus.Series.SUCCESSFUL) { throw new SystemException("SMS gateway communication failed: " + response.getStatusCode() + ": " + response.getStatusText()); } LOGGER.info("Message sent successfully to {} via gateway {}.", message.getTo(), smsGatewayConfigurationType.getName()); resultForGateway.recordSuccess(); result.recordSuccess(); return; } } catch (Throwable t) { String msg = "Couldn't send SMS to " + message.getTo() + " via " + smsGatewayConfigurationType.getName() + ", trying another gateway, if there is any"; LoggingUtils.logException(LOGGER, msg, t); resultForGateway.recordFatalError(msg, t); } } LOGGER.warn("No more SMS gateways to try, notification to " + message.getTo() + " will not be sent."); result.recordWarning("Notification to " + message.getTo() + " could not be sent."); }
From source file:org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfigurationTests.java
private void assertContent(String scheme, String url, int port, Object expected) throws Exception { SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory( new SSLContextBuilder().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build()); HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(socketFactory).build(); HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory( httpClient);//from ww w . ja v a 2 s . c o m ClientHttpRequest request = requestFactory.createRequest(new URI(scheme + "://localhost:" + port + url), HttpMethod.GET); try { ClientHttpResponse response = request.execute(); if (HttpStatus.NOT_FOUND.equals(response.getStatusCode())) { throw new FileNotFoundException(); } try { String actual = StreamUtils.copyToString(response.getBody(), Charset.forName("UTF-8")); if (expected instanceof Matcher) { assertThat(actual).is(Matched.by((Matcher<?>) expected)); } else { assertThat(actual).isEqualTo(expected); } } finally { response.close(); } } catch (Exception ex) { if (expected == null) { if (SocketException.class.isInstance(ex) || FileNotFoundException.class.isInstance(ex)) { return; } } throw ex; } }
From source file:org.springframework.boot.web.servlet.server.AbstractServletWebServerFactoryTests.java
protected ClientHttpResponse getClientResponse(String url, HttpMethod method, HttpComponentsClientHttpRequestFactory requestFactory, String... headers) throws IOException, URISyntaxException { ClientHttpRequest request = requestFactory.createRequest(new URI(url), method); request.getHeaders().add("Cookie", "JSESSIONID=" + "123"); for (String header : headers) { String[] parts = header.split(":"); request.getHeaders().add(parts[0], parts[1]); }//from w w w . ja va 2 s.co m ClientHttpResponse response = request.execute(); return response; }
From source file:org.openflamingo.collector.handler.HttpToLocalHandler.java
/** * HTTP URL? ./*from w w w. ja v a 2s. c o m*/ * * @param http HTTP * @return HTTP Response String * @throws Exception HTTP ? ?? ? ? */ private String getResponse(FromHttp http) throws Exception { logger.info("HTTP URL? ? ."); String url = jobContext.getValue(http.getUrl().trim()); String method = jobContext.getValue(http.getMethod().getType()); logger.info("HTTP URL Information :"); logger.info(" URL = {}", url); logger.info(" Method = {}", method); HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(); ClientHttpRequest request = null; if ("POST".equals(method)) { request = factory.createRequest(new java.net.URI(url), POST); } else { request = factory.createRequest(new java.net.URI(url), GET); } if (http.getHeaders() != null && http.getHeaders().getHeader().size() > 0) { List<Header> header = http.getHeaders().getHeader(); logger.info("HTTP Header :", new String[] {}); for (Header h : header) { String name = h.getName(); String value = jobContext.getValue(h.getValue()); request.getHeaders().add(name, value); logger.info("\t{} = {}", name, value); } } String responseBodyAsString = null; ClientHttpResponse response = null; try { response = request.execute(); responseBodyAsString = new String(FileCopyUtils.copyToByteArray(response.getBody()), Charset.defaultCharset()); logger.debug("HTTP ? ? ? .\n{}", responseBodyAsString); logger.info("HTTP ? . ? '{}({})'.", response.getStatusText(), response.getRawStatusCode()); if (response.getRawStatusCode() != HttpStatus.OK.value()) { throw new SystemException(ExceptionUtils.getMessage( "HTTP URL ? . ? OK '{}({})' ? .", response.getStatusText(), response.getRawStatusCode())); } } catch (Exception ex) { ex.printStackTrace(); throw new SystemException( ExceptionUtils.getMessage("HTTP URL ? . ? : {}", ExceptionUtils.getRootCause(ex).getMessage()), ex); } finally { try { response.close(); } catch (Exception ex) { // Ignored } } return responseBodyAsString; }