List of usage examples for org.apache.http.client HttpResponseException getStatusCode
public int getStatusCode()
From source file:com.jaspersoft.studio.server.protocol.restv2.RestV2ConnectionJersey.java
@Override public List<RepositoryPermission> setPermissions(ResourceDescriptor rd, List<RepositoryPermission> perms, PermissionOptions options, IProgressMonitor monitor) throws Exception { for (RepositoryPermission rp : perms) { WebTarget tgt = target.path("permissions" + rd.getUriString()); tgt = tgt.matrixParam("recipient", rp.getRecipient()); Builder req = tgt.request();//from ww w. jav a 2 s . co m if (rp.getMask() == -1) { try { Response r = connector.delete(req, monitor); toObj(r, String.class, monitor); } catch (HttpResponseException e) { if (e.getStatusCode() != 404 && e.getStatusCode() != 204) throw e; } } else if (rp.getUri() != null && rd.getUriString().equals(rp.getUri())) { Response r = connector.put(req, Entity.entity(rp, MediaType.APPLICATION_XML_TYPE), monitor); toObj(r, RepositoryPermission.class, monitor); } } return getPermissions(rd, monitor, options); }
From source file:com.jaspersoft.studio.server.protocol.restv2.RestV2ConnectionJersey.java
@Override public ResourceDescriptor get(IProgressMonitor monitor, ResourceDescriptor rd, File f) throws Exception { if (rd.getUriString() == null || rd.getUriString().contains("<")) throw new Exception("wrong url"); String uri = rd.getUriString(); if (uri.startsWith("repo://")) uri = uri.substring(5);/*from w ww. ja v a 2s . co m*/ if (!uri.startsWith("/")) uri = "/" + uri; WebTarget tgt = target.path("resources" + uri); tgt = tgt.queryParam("expanded", "true"); String rtype = WsTypes.INST().toRestType(rd.getWsType()); Builder req = null; if (rtype == null) req = tgt.request("application/repository.file+" + FORMAT); else req = tgt.request("application/repository." + rtype + "+" + FORMAT); Object obj = toObj(connector.get(req, monitor), WsTypes.INST().getType(rtype), monitor); if (obj instanceof ClientResource<?>) { ClientResource<?> crl = (ClientResource<?>) obj; if (rd.getWsType() == null) rd.setWsType(WsTypes.INST().getRestType(crl)); if (crl != null) { if (f != null && crl instanceof ClientFile) { ClientFile cf = (ClientFile) crl; tgt = target.path("resources" + uri); try { req = tgt.request(cf.getType().getMimeType()).header("Accept", cf.getType().getMimeType()); readFile(connector.get(req, monitor), f, monitor); } catch (HttpResponseException e) { if (e.getStatusCode() == 500) ;// jrs 5.5 returns 500 if file is not existing, a // bug // for newer versions, we should show the error } } rd = Rest2Soap.getRD(this, crl); if (crl instanceof ClientFile) setMainReportFlag(monitor, rd, (ClientFile) crl); return rd; } } else if (obj instanceof String) { rd.setData(((String) obj).getBytes()); rd.setIsReference(false); rd.setHasData(true); return rd; } return null; }
From source file:com.jaspersoft.studio.server.protocol.restv2.RestV2ConnectionJersey.java
@Override public List<ResourceDescriptor> list(IProgressMonitor monitor, ResourceDescriptor rd) throws Exception { List<ResourceDescriptor> rds = new ArrayList<ResourceDescriptor>(); if (rd.getWsType().equals(ResourceDescriptor.TYPE_REPORTUNIT)) { rd = parent.get(monitor, rd, null); return rd.getChildren(); } else if (rd.getWsType().equals(ResourceDescriptor.TYPE_DOMAIN_TOPICS)) { rd = parent.get(monitor, rd, null); return rd.getChildren(); } else if (rd.getWsType().equals(ResourceDescriptor.TYPE_ADHOC_DATA_VIEW)) { try {//ww w.j a v a 2 s. c om return getInputControls(rd.getParentFolder() + "/" + rd.getName(), monitor); } catch (HttpResponseException e) { if (e.getStatusCode() == 403) return new ArrayList<ResourceDescriptor>(); throw e; } } else if (rd.getWsType().equals(ResourceDescriptor.TYPE_DASHBOARD)) { try { return getInputControls(rd.getParentFolder() + "/" + rd.getName(), monitor); } catch (HttpResponseException e) { if (e.getStatusCode() == 403) return new ArrayList<ResourceDescriptor>(); throw e; } } else if (rd.getWsType().equals(ResourceDescriptor.TYPE_REPORT_OPTIONS)) { try { return getInputControls(rd.getParentFolder() + "/" + rd.getName(), monitor); } catch (HttpResponseException e) { if (e.getStatusCode() == 403) return new ArrayList<ResourceDescriptor>(); throw e; } } else { WebTarget tgt = target.path("resources"); tgt = tgt.queryParam("folderUri", rd.getUriString()); tgt = tgt.queryParam("recursive", "false"); tgt = tgt.queryParam("sortBy", "label"); // tgt = tgt.queryParam("type", // WsTypes.INST().toRestType(rd.getWsType())); tgt = tgt.queryParam("limit", 0); Builder req = tgt.request(); ClientResourceListWrapper resources = toObj(connector.get(req, monitor), ClientResourceListWrapper.class, monitor); if (resources != null) { boolean isPublic = false; for (ClientResourceLookup crl : resources.getResourceLookups()) { if (!isPublic) isPublic = crl.getUri().equals("/public"); ResourceDescriptor nrd = Rest2Soap.getRDLookup(this, crl); rds.add(nrd); if (nrd.getWsType().equals(ResourceDescriptor.TYPE_CONTENT_RESOURCE)) { String name = nrd.getUriString().toLowerCase(); if (FileExtension.isImage(name)) nrd.setWsType(ResourceDescriptor.TYPE_IMAGE); if (FileExtension.isFont(name)) nrd.setWsType(ResourceDescriptor.TYPE_FONT); else if (name.endsWith(".xml")) nrd.setWsType(ResourceDescriptor.TYPE_XML_FILE); else if (name.endsWith(FileExtension.PointJRXML)) nrd.setWsType(ResourceDescriptor.TYPE_JRXML); else if (name.endsWith(".jar")) nrd.setWsType("." + ResourceDescriptor.TYPE_CLASS_JAR); else if (name.endsWith(FileExtension.PointJRTX)) nrd.setWsType(ResourceDescriptor.TYPE_STYLE_TEMPLATE); else if (name.endsWith("." + ResourceDescriptor.TYPE_CSS_FILE)) nrd.setWsType(ResourceDescriptor.TYPE_CSS_FILE); else if (name.endsWith(".js")) nrd.setWsType(ResourceDescriptor.TYPE_CONTENT_RESOURCE); else if (name.endsWith(".properties")) nrd.setWsType(ResourceDescriptor.TYPE_RESOURCE_BUNDLE); } } // workaround if (rd.getUriString().equals("/") && !isPublic) { try { ResourceDescriptor pub = new ResourceDescriptor(); pub.setUriString("/public"); pub.setWsType(ResourceDescriptor.TYPE_FOLDER); rds.add(parent.get(monitor, pub, null)); } catch (Exception e) { e.printStackTrace(); } } } } return rds; }
From source file:com.jaspersoft.studio.server.protocol.restv2.RestV2ConnectionJersey.java
@Override public ResourceDescriptor addOrModifyResource(IProgressMonitor monitor, ResourceDescriptor rd, File inFile) throws Exception { prepareResource(monitor, rd, inFile); String rtype = WsTypes.INST().toRestType(rd.getWsType()); ClientResource<?> cr = Soap2Rest.getResource(this, rd); Response r = null;//w w w . j a v a 2 s .co m if (cr instanceof ClientReportUnit) { ClientReportUnit cru = (ClientReportUnit) cr; if (cru.getJrxml() == null) { ResourceDescriptor newrd = get(monitor, rd, inFile); for (ResourceDescriptor rc : newrd.getChildren()) { if (rc.getWsType().equals(ResourceDescriptor.TYPE_JRXML) && rc.isMainReport()) rd.getChildren().add(rc); } cr = Soap2Rest.getResource(this, newrd); cru = (ClientReportUnit) cr; } if (cru.getJrxml() instanceof ClientFile) { ClientFile cf = (ClientFile) cru.getJrxml(); if (cf.getContent() == null) { WebTarget tgt = target.path("resources" + cf.getUri()); try { Builder req = tgt.request(cf.getType().getMimeType()).header("Accept", cf.getType().getMimeType()); cf.setContent( new String(Base64.encodeBase64(readFile(connector.get(req, monitor), monitor)))); } catch (HttpResponseException e) { if (e.getStatusCode() == 500) ;// jrs 5.5 returns 500 if file is not existing, a // bug // for newer versions, we should show the error } } } } if (rd.getWsType().equals(ResourceDescriptor.TYPE_REPORT_OPTIONS)) { ResourceProperty resprop = ResourceDescriptorUtil.getProperty("PROP_RU_URI", rd.getProperties()); WebTarget tgt = target.path("reports" + resprop.getValue() + "/options"); tgt = tgt.queryParam("label", rd.getLabel()); tgt = tgt.queryParam("overwrite", "true"); ReportParameters rprms = new ReportParameters(new ArrayList<ReportParameter>()); Builder req = tgt.request(); r = connector.post(req, Entity.entity(rprms, MediaType.APPLICATION_XML_TYPE), monitor); try { toObj(r, String.class, monitor); } catch (HttpResponseException e) { if (e.getStatusCode() == 409) { rd.setVersion(parent.get(monitor, rd, null).getVersion()); return addOrModifyResource(monitor, rd, inFile); } else throw e; } return doGet(monitor, rd, cr); } WebTarget tgt = target.path("resources" + rd.getUriString()); tgt = tgt.queryParam("createFolders", "true"); tgt = tgt.queryParam("overwrite", "true"); Builder req = tgt.request(); r = connector.put(req, Entity.entity(cr, "application/repository." + rtype + "+" + FORMAT), monitor); ClientResource<?> crl = null; try { crl = toObj(r, WsTypes.INST().getType(rtype), monitor); } catch (HttpResponseException e) { if (e.getStatusCode() == 409) { rd.setVersion(parent.get(monitor, rd, null).getVersion()); return addOrModifyResource(monitor, rd, inFile); } else throw e; } if (crl != null && !monitor.isCanceled()) rd = doGet(monitor, rd, crl); return rd; }
From source file:org.ymkm.lib.http.HttpRequester.java
private static HttpResponseHolder request(HttpRequestHolder loadReq) { HttpClient client = null;/*from w w w . ja v a 2 s . co m*/ ExecutableRequest req = loadReq.http; HttpRequestListener listener = loadReq.listener; HttpParams params = req.getParams(); if (null == params) { params = new BasicHttpParams(); } if (null != listener) { listener.setRequestParams(params); } // Use Android specific client if available if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.FROYO) { client = android.net.http.AndroidHttpClient.newInstance(android_user_agent); } else { // Sets up the http part of the service. final SchemeRegistry supportedSchemes = new SchemeRegistry(); // Register the "http" protocol scheme, it is required // by the default operator to look up socket factories. final SocketFactory sf = PlainSocketFactory.getSocketFactory(); supportedSchemes.register(new Scheme("http", sf, 80)); supportedSchemes.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); final ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(params, supportedSchemes); client = new DefaultHttpClient(ccm, params); } req.setParams(params); if (null != listener) { listener.setHttpClient(client); } HttpResponse resp = null; HttpResponseHolder holder = new HttpResponseHolder(); holder.uri = Uri.parse(req.getURI().toString()); try { resp = client.execute(req); holder.returnCode = resp.getStatusLine().getStatusCode(); Header[] hdrs = resp.getAllHeaders(); if (hdrs.length > 0) { for (Header h : hdrs) { holder.headers.put(h.getName(), h.getValue()); } } if ("application/octet-stream".equals(resp.getFirstHeader("Content-Type").getValue())) { int len = 0; byte[] buffer = new byte[1024]; InputStream is = null; ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { is = resp.getEntity().getContent(); while (0 < (len = is.read(buffer))) { baos.write(buffer, 0, len); } holder.responseBytes = baos.toByteArray(); } catch (IOException e) { e.printStackTrace(); return null; } finally { if (null != baos) { try { baos.close(); } catch (IOException e) { } } if (null != is) { try { is.close(); } catch (IOException e) { } } } } else { Reader r = null; int length = 1024; if (null != resp.getFirstHeader("Content-Length")) { length = Integer.parseInt(resp.getFirstHeader("Content-Length").getValue()); } // Set initial size for StringBuilder buffer to be content length + some extra StringBuilder sb = new StringBuilder(length + 10); try { r = new BufferedReader(new InputStreamReader(resp.getEntity().getContent())); String s = null; while ((s = ((BufferedReader) r).readLine()) != null) { sb.append(s); } } catch (IOException e) { e.printStackTrace(); return null; } finally { if (null != r) { try { r.close(); } catch (IOException e) { } } } holder.responseBody = sb.toString(); } return holder; } catch (HttpResponseException hre) { holder.responseBody = hre.getMessage(); holder.returnCode = hre.getStatusCode(); return holder; } catch (ClientProtocolException cpe) { cpe.printStackTrace(); holder.responseBody = cpe.getMessage(); holder.returnCode = 500; return holder; } catch (Exception exc) { exc.printStackTrace(); holder.responseBody = exc.getMessage(); holder.returnCode = 500; return holder; } finally { // Use Android specific client if available if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.FROYO) { ((android.net.http.AndroidHttpClient) client).close(); } } }
From source file:org.eol.globi.service.EOLService.java
private String getResponse(URI uri) throws TaxonPropertyLookupServiceException { HttpGet get = new HttpGet(uri); BasicResponseHandler responseHandler = new BasicResponseHandler(); String response = null;//w ww . j a v a 2s.c o m try { response = execute(get, responseHandler); } catch (HttpResponseException e) { if (e.getStatusCode() != 406 && e.getStatusCode() != 404) { throw new TaxonPropertyLookupServiceException( "failed to lookup [" + uri.toString() + "]: http status [" + e.getStatusCode() + "] ", e); } } catch (ClientProtocolException e) { throw new TaxonPropertyLookupServiceException("failed to lookup [" + uri.toString() + "]", e); } catch (IOException e) { throw new TaxonPropertyLookupServiceException("failed to lookup [" + uri.toString() + "]", e); } return response; }
From source file:org.jenkinsci.plugins.skytap.SkytapUtils.java
/** * Utility method to execute any type of http request (except delete), to * catch any exceptions thrown and return the response string. * /*ww w .j a v a 2 s.co m*/ * @param hr * @return * @throws SkytapException * @throws IOException * @throws ParseException */ public static String executeHttpRequest(HttpRequestBase hr) throws SkytapException { boolean retryHttpRequest = true; int retryCount = 1; String responseString = ""; while (retryHttpRequest == true) { HttpClient httpclient = new DefaultHttpClient(); // // Set timeouts for httpclient requests to 60 seconds // HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 60000); HttpConnectionParams.setSoTimeout(httpclient.getParams(), 60000); // responseString = ""; HttpResponse response = null; try { Date myDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss"); String myDateString = sdf.format(myDate); JenkinsLogger.log(myDateString + "\n" + "Executing Request: " + hr.getRequestLine()); response = httpclient.execute(hr); String responseStatusLine = response.getStatusLine().toString(); if (responseStatusLine.contains("423 Locked")) { retryCount = retryCount + 1; if (retryCount > 5) { retryHttpRequest = false; JenkinsLogger.error("Object busy too long - giving up."); } else { JenkinsLogger.log("Object busy - Retrying..."); try { Thread.sleep(15000); } catch (InterruptedException e1) { JenkinsLogger.error(e1.getMessage()); } } } else if (responseStatusLine.contains("409 Conflict")) { throw new SkytapException(responseStatusLine); } else { JenkinsLogger.log(response.getStatusLine().toString()); HttpEntity entity = response.getEntity(); responseString = EntityUtils.toString(entity, "UTF-8"); retryHttpRequest = false; } } catch (HttpResponseException e) { retryHttpRequest = false; JenkinsLogger.error("HTTP Response Code: " + e.getStatusCode()); } catch (ParseException e) { retryHttpRequest = false; JenkinsLogger.error(e.getMessage()); } catch (InterruptedIOException e) { Date myDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss"); String myDateString = sdf.format(myDate); retryCount = retryCount + 1; if (retryCount > 5) { retryHttpRequest = false; JenkinsLogger.error("API Timeout - giving up. " + e.getMessage()); } else { JenkinsLogger.log(myDateString + "\n" + e.getMessage() + "\n" + "API Timeout - Retrying..."); } } catch (IOException e) { retryHttpRequest = false; JenkinsLogger.error(e.getMessage()); } finally { if (response != null) { // response will be null if this is a timeout retry HttpEntity entity = response.getEntity(); try { responseString = EntityUtils.toString(entity, "UTF-8"); } catch (IOException e) { // JenkinsLogger.error(e.getMessage()); } } httpclient.getConnectionManager().shutdown(); } } return responseString; }
From source file:org.jenkinsci.plugins.skytap.SkytapUtils.java
/** * Utility method used to execute an http delete. Returns the status line * which can be parsed as desired by the caller. * /*from w w w.java 2 s. c om*/ * @param hd * @return * @throws SkytapException */ public static String executeHttpDeleteRequest(HttpDelete hd) { String responseString = ""; HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = null; JenkinsLogger.log("Executing Request: " + hd.getRequestLine()); try { response = httpclient.execute(hd); String statusLine = response.getStatusLine().toString(); JenkinsLogger.log(statusLine); HttpEntity entity = response.getEntity(); responseString = EntityUtils.toString(entity, "UTF-8"); } catch (HttpResponseException e) { JenkinsLogger.error("HTTP Response Code: " + e.getStatusCode()); } catch (ParseException e) { JenkinsLogger.error(e.getMessage()); } catch (IOException e) { JenkinsLogger.error(e.getMessage()); } finally { HttpEntity entity = response.getEntity(); try { responseString = EntityUtils.toString(entity, "UTF-8"); } catch (IOException e) { // JenkinsLogger.error(e.getMessage()); } httpclient.getConnectionManager().shutdown(); } return responseString; }