Example usage for org.apache.http.client HttpResponseException getStatusCode

List of usage examples for org.apache.http.client HttpResponseException getStatusCode

Introduction

In this page you can find the example usage for org.apache.http.client HttpResponseException getStatusCode.

Prototype

public int getStatusCode() 

Source Link

Usage

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;
}