List of usage examples for org.springframework.http.client ClientHttpResponse getStatusText
String getStatusText() throws IOException;
From source file:nl.gridshore.nosapi.impl.NosApiResponseErrorHandler.java
@Override public void handleError(ClientHttpResponse response) throws IOException { logger.debug("Handle error '{}' received from the NOS server.", response.getStatusCode().name()); HttpStatus statusCode = response.getStatusCode(); MediaType contentType = response.getHeaders().getContentType(); Charset charset = contentType != null ? contentType.getCharSet() : null; byte[] body = FileCopyUtils.copyToByteArray(response.getBody()); switch (statusCode) { case BAD_REQUEST: case UNAUTHORIZED: case FORBIDDEN: throwClientException(charset, body); default:/* www . j av a 2s . com*/ // do nothing, let the series resolving do it' work } switch (statusCode.series()) { case CLIENT_ERROR: throw new HttpClientErrorException(statusCode, response.getStatusText(), body, charset); case SERVER_ERROR: throw new HttpServerErrorException(statusCode, response.getStatusText(), body, charset); default: throw new RestClientException("Unknown status code [" + statusCode + "]"); } }
From source file:fr.itldev.koya.services.impl.util.AlfrescoRestErrorHandler.java
@Override public void handleError(ClientHttpResponse clienthttpresponse) throws IOException { if (!statusOK.contains(clienthttpresponse.getStatusCode())) { AlfrescoServiceException ex;/*from w ww . j a v a2 s. com*/ if (clienthttpresponse.getStatusCode().equals(HttpStatus.INTERNAL_SERVER_ERROR)) { java.util.Scanner s = new java.util.Scanner(clienthttpresponse.getBody()).useDelimiter("\\A"); String message = s.hasNext() ? s.next() : ""; /* Try to get any Koya Error code if exists */ Integer koyaErrorCode = null; Matcher matcher = ERRORCODEPATTERN.matcher(message); if (matcher.find()) { koyaErrorCode = Integer.valueOf(matcher.group(1)); } ex = new AlfrescoServiceException( "Erreur " + clienthttpresponse.getStatusCode() + " : " + clienthttpresponse.getStatusText(), koyaErrorCode); ex.setHttpErrorCode(clienthttpresponse.getStatusCode().value()); } else if (clienthttpresponse.getStatusCode().equals(HttpStatus.FORBIDDEN)) { ex = new AlfrescoServiceException("Acces Denied"); ex.setHttpErrorCode(clienthttpresponse.getStatusCode().value()); } else { ex = new AlfrescoServiceException(); ex.setHttpErrorCode(clienthttpresponse.getStatusCode().value()); throw ex; } throw ex; } }
From source file:org.springframework.web.client.RestTemplate.java
private void logResponseStatus(HttpMethod method, URI url, ClientHttpResponse response) { if (Log.isLoggable(TAG, Log.DEBUG)) { try {/*from w w w.j a va 2 s . com*/ Log.d(TAG, method.name() + " request for \"" + url + "\" resulted in " + response.getStatusCode() + " (" + response.getStatusText() + ")"); } catch (IOException e) { // ignore } } }
From source file:org.springframework.web.client.RestTemplate.java
private void handleResponseError(HttpMethod method, URI url, ClientHttpResponse response) throws IOException { if (Log.isLoggable(TAG, Log.WARN)) { try {/*w w w . j a v a 2s .c o m*/ Log.w(TAG, method.name() + " request for \"" + url + "\" resulted in " + response.getStatusCode() + " (" + response.getStatusText() + "); invoking error handler"); } catch (IOException e) { // ignore } } getErrorHandler().handleError(response); }
From source file:org.fao.geonet.api.records.formatters.FormatterApi.java
private String getXmlFromUrl(ServiceContext context, String lang, String url, WebRequest request) throws IOException, URISyntaxException { String adjustedUrl = url;/* www . j a va 2 s. c o m*/ if (!url.startsWith("http")) { adjustedUrl = context.getBean(SettingManager.class).getSiteURL(lang) + url; } else { final URI uri = new URI(url); Set allowedRemoteHosts = context.getApplicationContext().getBean("formatterRemoteFormatAllowedHosts", Set.class); Assert.isTrue(allowedRemoteHosts.contains(uri.getHost()), "xml.format is not allowed to make requests to " + uri.getHost()); } HttpUriRequest getXmlRequest = new HttpGet(adjustedUrl); final Iterator<String> headerNames = request.getHeaderNames(); while (headerNames.hasNext()) { String headerName = headerNames.next(); final String[] headers = request.getHeaderValues(headerName); for (String header : headers) { getXmlRequest.addHeader(headerName, header); } } GeonetHttpRequestFactory requestFactory = context.getBean(GeonetHttpRequestFactory.class); final ClientHttpResponse execute = requestFactory.execute(getXmlRequest); if (execute.getRawStatusCode() != 200) { throw new IllegalArgumentException("Request " + adjustedUrl + " did not succeed. Response Status: " + execute.getStatusCode() + ", status text: " + execute.getStatusText()); } return new String(ByteStreams.toByteArray(execute.getBody()), Constants.CHARSET); }
From source file:org.springframework.social.twitter.api.impl.TwitterErrorHandler.java
private void handleClientErrors(ClientHttpResponse response) throws IOException { HttpStatus statusCode = response.getStatusCode(); Map<String, Object> errorMap = extractErrorDetailsFromResponse(response); String errorText = ""; if (errorMap.containsKey("error")) { errorText = (String) errorMap.get("error"); } else if (errorMap.containsKey("errors")) { Object errors = errorMap.get("errors"); if (errors instanceof List) { @SuppressWarnings("unchecked") List<Map<String, String>> errorsList = (List<Map<String, String>>) errors; errorText = errorsList.get(0).get("message"); } else if (errors instanceof String) { errorText = (String) errors; }/*www . ja va 2 s. co m*/ } if (statusCode == HttpStatus.BAD_REQUEST) { if (errorText.contains("Rate limit exceeded.")) { throw new RateLimitExceededException("twitter"); } } else if (statusCode == HttpStatus.UNAUTHORIZED) { if (errorText == null) { throw new NotAuthorizedException("twitter", response.getStatusText()); } else if (errorText.equals("Could not authenticate you.")) { throw new MissingAuthorizationException("twitter"); } else if (errorText.equals("Could not authenticate with OAuth.")) { // revoked token throw new RevokedAuthorizationException("twitter"); } else if (errorText.equals("Invalid / expired Token")) { // Note that Twitter doesn't actually expire tokens throw new InvalidAuthorizationException("twitter", errorText); } else { throw new NotAuthorizedException("twitter", errorText); } } else if (statusCode == HttpStatus.FORBIDDEN) { if (errorText.equals(DUPLICATE_STATUS_TEXT) || errorText.contains("You already said that")) { throw new DuplicateStatusException("twitter", errorText); } else if (errorText.equals(STATUS_TOO_LONG_TEXT) || errorText.contains(MESSAGE_TOO_LONG_TEXT)) { throw new MessageTooLongException(errorText); } else if (errorText.equals(INVALID_MESSAGE_RECIPIENT_TEXT)) { throw new InvalidMessageRecipientException(errorText); } else if (errorText.equals(DAILY_RATE_LIMIT_TEXT)) { throw new RateLimitExceededException("twitter"); } else { throw new OperationNotPermittedException("twitter", errorText); } } else if (statusCode == HttpStatus.NOT_FOUND) { throw new ResourceNotFoundException("twitter", errorText); } else if (statusCode == HttpStatus.valueOf(ENHANCE_YOUR_CALM) || statusCode == HttpStatus.valueOf(TOO_MANY_REQUESTS)) { throw new RateLimitExceededException("twitter"); } }
From source file:org.cruk.genologics.api.impl.GenologicsAPIImpl.java
@Override public void downloadFile(Linkable<GenologicsFile> file, OutputStream resultStream) throws IOException { if (file == null) { throw new IllegalArgumentException("file cannot be null"); }/*ww w . j a v a 2 s .co m*/ if (resultStream == null) { throw new IllegalArgumentException("resultStream cannot be null"); } GenologicsEntity entityAnno = checkEntityAnnotated(GenologicsFile.class); GenologicsFile realFile; if (file instanceof GenologicsFile) { realFile = (GenologicsFile) file; if (realFile.getContentLocation() == null) { // Don't know where the actual file is, so fetch to get the full info. realFile = retrieve(file.getUri(), GenologicsFile.class); } } else { realFile = retrieve(file.getUri(), GenologicsFile.class); } URI fileURL; if (downloadDirectFromHttpStore && HTTP_PROTOCOLS.contains(realFile.getContentLocation().getScheme())) { fileURL = realFile.getContentLocation(); } else { try { fileURL = new URI( getServerApiAddress() + entityAnno.uriSection() + "/" + realFile.getLimsid() + "/download"); } catch (URISyntaxException e) { throw new IllegalArgumentException( "File LIMS id " + realFile.getLimsid() + " produces an invalid URI for download.", e); } } logger.info("Downloading {}", fileURL); ClientHttpRequest request = httpRequestFactory.createRequest(fileURL, HttpMethod.GET); ClientHttpResponse response = request.execute(); switch (response.getStatusCode().series()) { case SUCCESSFUL: try (InputStream in = response.getBody()) { byte[] buffer = new byte[8192]; IOUtils.copyLarge(in, resultStream, buffer); } finally { resultStream.flush(); } logger.debug("{} download successful.", fileURL); break; default: logger.debug("{} download failed. HTTP {}", fileURL, response.getStatusCode()); throw new IOException("Could not download file " + realFile.getLimsid() + " (HTTP " + response.getStatusCode() + "): " + response.getStatusText()); } }
From source file:org.fao.geonet.doi.client.DoiClient.java
/** * This request marks a dataset as 'inactive'. * To activate it again, POST new metadata or set the isActive-flag in the user interface. * * @param doi/* w w w.j av a2 s . co m*/ * @throws DoiClientException */ public void deleteDoiMetadata(String doi) throws DoiClientException { ClientHttpResponse httpResponse = null; HttpDelete deleteMethod = null; try { Log.debug(LOGGER_NAME, " -- URL: " + this.serverUrl + "/metadata"); deleteMethod = new HttpDelete(createUrl("metadata/" + doi)); httpResponse = requestFactory.execute(deleteMethod, new UsernamePasswordCredentials(username, password), AuthScope.ANY); int status = httpResponse.getRawStatusCode(); Log.debug(LOGGER_NAME, " -- Request status code: " + status); // Ignore NOT FOUND (trying to delete a non existing doi metadata) if ((status != HttpStatus.SC_NOT_FOUND) && (status != HttpStatus.SC_OK)) { Log.info(LOGGER_NAME, "Delete DOI metadata end -- Error: " + httpResponse.getStatusText()); throw new DoiClientException(httpResponse.getStatusText()); } else { Log.info(LOGGER_NAME, "DeleteDOI metadata end"); } } catch (Exception ex) { Log.error(LOGGER_NAME, " -- Error (exception): " + ex.getMessage()); throw new DoiClientException(ex.getMessage()); } finally { if (deleteMethod != null) { deleteMethod.releaseConnection(); } // Release the connection. IOUtils.closeQuietly(httpResponse); } }