Example usage for org.apache.http.client.methods HttpHead HttpHead

List of usage examples for org.apache.http.client.methods HttpHead HttpHead

Introduction

In this page you can find the example usage for org.apache.http.client.methods HttpHead HttpHead.

Prototype

public HttpHead(final String uri) 

Source Link

Usage

From source file:org.dawnsci.marketplace.ui.editors.OverviewPage.java

private String getCsrfToken(CloseableHttpClient client) throws ClientProtocolException, IOException {
    String url = getMarketplaceUrl();

    HttpHead head = new HttpHead(url + "token");
    head.addHeader(X_CSRF_TOKEN, "fetch");
    CloseableHttpResponse response = client.execute(head);

    EntityUtils.consume(response.getEntity());
    String token = null;/*from   ww  w .  j  av  a  2s.  c  o  m*/
    Header[] headers = response.getHeaders(X_CSRF_TOKEN);
    for (Header header : headers) {
        token = header.getValue();
    }
    return token;
}

From source file:com.ecocitizen.common.HttpHelper.java

private boolean sendHttpHead(String url) {
    if (D)/*from   w w  w.  ja  v a 2 s . c om*/
        Log.d(TAG, url);
    HttpClient client = new DefaultHttpClient();
    HttpHead request = new HttpHead(url);
    request.setHeader("User-Agent", HTTP_USER_AGENT);

    try {
        HttpResponse response = client.execute(request);
        StatusLine status = response.getStatusLine();
        if (status.getStatusCode() == HTTP_STATUS_OK) {
            mLastStatus = Status.SUCCESS;
            return true;
        }
    } catch (ClientProtocolException e) {
        mLastStatus = Status.EXCEPTION;
        e.printStackTrace();
        Log.e(TAG, "Exception in sendHttpHead");
    } catch (IOException e) {
        mLastStatus = Status.EXCEPTION;
        e.printStackTrace();
        Log.e(TAG, "Exception in sendHttpHead");
    }

    return false;
}

From source file:org.apache.marmotta.platform.core.services.content.HTTPContentReader.java

/**
 * Return the MIME content type of the resource passed as argument.
 *
 * @param resource resource for which to return the content type
 * @return the MIME content type of the resource
 *//*ww w  .ja  v  a  2  s  .  c o m*/
@Override
public String getContentType(Resource resource) {
    try {
        RepositoryConnection conn = sesameService.getConnection();
        try {
            MediaContentItem mci = FacadingFactory.createFacading(conn).createFacade(resource,
                    MediaContentItem.class);

            String location = mci.getContentLocation();

            // if no location is explicitly specified, use the resource URI itself
            if (location == null && resource instanceof URI && resource.stringValue().startsWith("http://")) {
                location = resource.stringValue();
            }

            try {
                if (location != null) {
                    log.info("reading remote resource {}", location);
                    HttpHead head = new HttpHead(location);

                    return httpClientService.execute(head, new ResponseHandler<String>() {
                        @Override
                        public String handleResponse(HttpResponse response)
                                throws ClientProtocolException, IOException {
                            if (response.getStatusLine().getStatusCode() == 200)
                                return response.getFirstHeader("Content-Type").getValue().split(";")[0];
                            else
                                return null;
                        }
                    });
                } else
                    return null;
            } catch (IOException ex) {
                return null;
            }
        } finally {
            conn.commit();
            conn.close();
        }
    } catch (RepositoryException ex) {
        handleRepositoryException(ex, FileSystemContentReader.class);
        return null;
    }
}

From source file:imageLines.ImageHelpers.java

public static Boolean checkImageHeader(String imageURLString, String uname, String pass)
        throws ClientProtocolException {

    /*// w  w  w. j  a v a  2  s . c o m
    URLConnection conn=imageURL.openConnection();
    String userPassword=user+":"+ pass;
    String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());
    conn.setRequestProperty ("Authorization", "Basic " + encoding);*/
    DefaultHttpClient httpclient = new DefaultHttpClient();

    ResponseHandler<String> responseHandler = new BasicResponseHandler();

    httpclient.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY),
            new UsernamePasswordCredentials(uname, pass));
    HttpHead head = new HttpHead(imageURLString);
    //HttpGet httpget = new HttpGet(imageURLString);
    System.out.println("executing head request" + head.getRequestLine());

    HttpResponse response;
    try {
        response = httpclient.execute(head);
        int code = response.getStatusLine().getStatusCode();
        if (code == 200 || code == 304)
            return true;
    } catch (IOException ex) {
        Logger.getLogger(ImageHelpers.class.getName()).log(Level.SEVERE, null, ex);
    }
    return false;

}

From source file:com.google.acre.script.AcreFetch.java

@SuppressWarnings("boxing")
public void fetch(boolean system, String response_encoding, boolean log_to_user, boolean no_redirect) {

    if (request_url.length() > 2047) {
        throw new AcreURLFetchException("fetching URL failed - url is too long");
    }//from  w  w w .ja v a 2s  .  c o  m

    DefaultHttpClient client = new DefaultHttpClient(_connectionManager, null);

    HttpParams params = client.getParams();

    // pass the deadline down to the invoked service.
    // this will be ignored unless we are fetching from another
    // acre server.
    // note that we may send a deadline that is already passed:
    // it's not our job to throw here since we don't know how
    // the target service will interpret the quota header.
    // NOTE: this is done *after* the user sets the headers to overwrite
    // whatever settings they might have tried to change for this value
    // (which could be a security hazard)
    long sub_deadline = (HostEnv.LIMIT_EXECUTION_TIME) ? _deadline - HostEnv.SUBREQUEST_DEADLINE_ADVANCE
            : System.currentTimeMillis() + HostEnv.ACRE_URLFETCH_TIMEOUT;
    int reentries = _reentries + 1;
    request_headers.put(HostEnv.ACRE_QUOTAS_HEADER, "td=" + sub_deadline + ",r=" + reentries);

    // if this is not an internal call, we need to invoke the call thru a proxy
    if (!_internal) {
        // XXX No sense wasting the resources to gzip inside the network.
        // XXX seems that twitter gets upset when we do this
        /*
        if (!request_headers.containsKey("accept-encoding")) {
        request_headers.put("accept-encoding", "gzip");
        }
        */
        String proxy_host = Configuration.Values.HTTP_PROXY_HOST.getValue();
        int proxy_port = -1;
        if (!(proxy_host.length() == 0)) {
            proxy_port = Configuration.Values.HTTP_PROXY_PORT.getInteger();
            HttpHost proxy = new HttpHost(proxy_host, proxy_port, "http");
            params.setParameter(AllClientPNames.DEFAULT_PROXY, proxy);
        }
    }

    params.setParameter(AllClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);

    // in msec

    long timeout = _deadline - System.currentTimeMillis();
    if (timeout < 0)
        timeout = 0;
    params.setParameter(AllClientPNames.CONNECTION_TIMEOUT, (int) timeout);
    params.setParameter(AllClientPNames.SO_TIMEOUT, (int) timeout);

    // we're not streaming the request so this should be a win.
    params.setParameter(AllClientPNames.TCP_NODELAY, true);

    // reuse an existing socket if it is in TIME_WAIT state.
    params.setParameter(AllClientPNames.SO_REUSEADDR, true);

    // set the encoding of our POST payloads to UTF-8
    params.setParameter(AllClientPNames.HTTP_CONTENT_CHARSET, "UTF-8");

    BasicCookieStore cstore = new BasicCookieStore();
    for (AcreCookie cookie : request_cookies.values()) {
        cstore.addCookie(cookie.toClientCookie());
    }
    client.setCookieStore(cstore);

    HttpRequestBase method;

    HashMap<String, String> logmsg = new HashMap<String, String>();
    logmsg.put("Method", request_method);
    logmsg.put("URL", request_url);

    params.setParameter(AllClientPNames.HANDLE_REDIRECTS, !no_redirect);
    logmsg.put("Redirect", Boolean.toString(!no_redirect));

    try {
        if (request_method.equals("GET")) {
            method = new HttpGet(request_url);
        } else if (request_method.equals("POST")) {
            method = new HttpPost(request_url);
        } else if (request_method.equals("HEAD")) {
            method = new HttpHead(request_url);
        } else if (request_method.equals("PUT")) {
            method = new HttpPut(request_url);
        } else if (request_method.equals("DELETE")) {
            method = new HttpDelete(request_url);
        } else if (request_method.equals("PROPFIND")) {
            method = new HttpPropFind(request_url);
        } else {
            throw new AcreURLFetchException("Failed: unsupported (so far) method " + request_method);
        }
        method.getParams().setBooleanParameter(AllClientPNames.USE_EXPECT_CONTINUE, false);
    } catch (java.lang.IllegalArgumentException e) {
        throw new AcreURLFetchException("Unable to fetch URL; this is most likely an issue with URL encoding.");
    } catch (java.lang.IllegalStateException e) {
        throw new AcreURLFetchException("Unable to fetch URL; possibly an illegal protocol?");
    }

    StringBuilder request_header_log = new StringBuilder();
    for (Map.Entry<String, String> header : request_headers.entrySet()) {
        String key = header.getKey();
        String value = header.getValue();

        // XXX should suppress cookie headers?
        // content-type and length?

        if ("content-type".equalsIgnoreCase(key)) {
            Matcher m = contentTypeCharsetPattern.matcher(value);
            if (m.find()) {
                content_type = m.group(1);
                content_type_charset = m.group(2);
            } else {
                content_type_charset = "utf-8";
            }
            method.addHeader(key, value);
        } else if ("content-length".equalsIgnoreCase(key)) {
            // ignore user-supplied content-length, which is
            // probably wrong due to chars vs bytes and is
            // redundant anyway
            ArrayList<String> msg = new ArrayList<String>();
            msg.add("User-supplied content-length header is ignored");
            _acre_response.log("warn", msg);
        } else if ("user-agent".equalsIgnoreCase(key)) {
            params.setParameter(AllClientPNames.USER_AGENT, value);
        } else {
            method.addHeader(key, value);
        }
        if (!("x-acre-auth".equalsIgnoreCase(key))) {
            request_header_log.append(key + ": " + value + "\r\n");
        }
    }
    logmsg.put("Headers", request_header_log.toString());

    // XXX need more detailed error checking
    if (method instanceof HttpEntityEnclosingRequestBase && request_body != null) {

        HttpEntityEnclosingRequestBase em = (HttpEntityEnclosingRequestBase) method;
        try {
            if (request_body instanceof String) {
                StringEntity ent = new StringEntity((String) request_body, content_type_charset);
                em.setEntity(ent);
            } else if (request_body instanceof JSBinary) {
                ByteArrayEntity ent = new ByteArrayEntity(((JSBinary) request_body).get_data());
                em.setEntity(ent);
            }
        } catch (UnsupportedEncodingException e) {
            throw new AcreURLFetchException(
                    "Failed to fetch URL. " + " - Unsupported charset: " + content_type_charset);
        }
    }

    if (!system && log_to_user) {
        ArrayList<Object> msg = new ArrayList<Object>();
        msg.add("urlfetch request");
        msg.add(logmsg);
        _acre_response.log("debug", msg);
    }
    _logger.info("urlfetch.request", logmsg);

    long startTime = System.currentTimeMillis();

    try {
        // this sends the http request and waits
        HttpResponse hres = client.execute(method);
        status = hres.getStatusLine().getStatusCode();
        HashMap<String, String> res_logmsg = new HashMap<String, String>();
        res_logmsg.put("URL", request_url);
        res_logmsg.put("Status", ((Integer) status).toString());

        Header content_type_header = null;

        // translate response headers
        StringBuilder response_header_log = new StringBuilder();
        Header[] rawheaders = hres.getAllHeaders();
        for (Header rawheader : rawheaders) {
            String headername = rawheader.getName().toLowerCase();
            if (headername.equalsIgnoreCase("content-type")) {
                content_type_header = rawheader;
                // XXX should strip everything after ;
                content_type = rawheader.getValue();

                // XXX don't set content_type_parameters, deprecated?
            } else if (headername.equalsIgnoreCase("x-metaweb-cost")) {
                _costCollector.merge(rawheader.getValue());
            } else if (headername.equalsIgnoreCase("x-metaweb-tid")) {
                res_logmsg.put("ITID", rawheader.getValue());
            }

            headers.put(headername, rawheader.getValue());
            response_header_log.append(headername + ": " + rawheader.getValue() + "\r\n");
        }

        res_logmsg.put("Headers", response_header_log.toString());

        if (!system && log_to_user) {
            ArrayList<Object> msg = new ArrayList<Object>();
            msg.add("urlfetch response");
            msg.add(res_logmsg);
            _acre_response.log("debug", msg);
        }

        _logger.info("urlfetch.response", res_logmsg);

        // read cookies
        for (Cookie c : cstore.getCookies()) {
            cookies.put(c.getName(), new AcreCookie(c));
        }

        // get body encoding

        String charset = null;
        if (content_type_header != null) {
            HeaderElement values[] = content_type_header.getElements();
            if (values.length == 1) {
                NameValuePair param = values[0].getParameterByName("charset");
                if (param != null) {
                    charset = param.getValue();
                }
            }
        }

        if (charset == null)
            charset = response_encoding;

        // read body
        HttpEntity ent = hres.getEntity();
        if (ent != null) {
            InputStream res_stream = ent.getContent();
            Header cenc = ent.getContentEncoding();
            if (cenc != null && res_stream != null) {
                HeaderElement[] codecs = cenc.getElements();
                for (HeaderElement codec : codecs) {
                    if (codec.getName().equalsIgnoreCase("gzip")) {
                        res_stream = new GZIPInputStream(res_stream);
                    }
                }
            }

            long firstByteTime = 0;
            long endTime = 0;
            if (content_type != null
                    && (content_type.startsWith("image/") || content_type.startsWith("application/octet-stream")
                            || content_type.startsWith("multipart/form-data"))) {
                // HttpClient's InputStream doesn't support mark/reset, so
                // wrap it with one that does.
                BufferedInputStream bufis = new BufferedInputStream(res_stream);
                bufis.mark(2);
                bufis.read();
                firstByteTime = System.currentTimeMillis();
                bufis.reset();
                byte[] data = IOUtils.toByteArray(bufis);

                endTime = System.currentTimeMillis();
                body = new JSBinary();
                ((JSBinary) body).set_data(data);

                try {
                    if (res_stream != null) {
                        res_stream.close();
                    }
                } catch (IOException e) {
                    // ignore
                }
            } else if (res_stream == null || charset == null) {
                firstByteTime = endTime = System.currentTimeMillis();
                body = "";
            } else {
                StringWriter writer = new StringWriter();
                Reader reader = new InputStreamReader(res_stream, charset);
                int i = reader.read();
                firstByteTime = System.currentTimeMillis();
                writer.write(i);
                IOUtils.copy(reader, writer);
                endTime = System.currentTimeMillis();
                body = writer.toString();

                try {
                    reader.close();
                    writer.close();
                } catch (IOException e) {
                    // ignore
                }
            }

            long waitingTime = firstByteTime - startTime;
            long readingTime = endTime - firstByteTime;

            _logger.debug("urlfetch.timings", "waiting time: " + waitingTime + "ms");
            _logger.debug("urlfetch.timings", "reading time: " + readingTime + "ms");

            Statistics.instance().collectUrlfetchTime(startTime, firstByteTime, endTime);

            _costCollector.collect((system) ? "asuc" : "auuc").collect((system) ? "asuw" : "auuw", waitingTime)
                    .collect((system) ? "asub" : "auub", waitingTime);
        }
    } catch (IllegalArgumentException e) {
        Throwable cause = e.getCause();
        if (cause == null)
            cause = e;
        throw new AcreURLFetchException("failed to fetch URL. " + " - Request Error: " + cause.getMessage());
    } catch (IOException e) {
        Throwable cause = e.getCause();
        if (cause == null)
            cause = e;
        throw new AcreURLFetchException("Failed to fetch URL. " + " - Network Error: " + cause.getMessage());
    } catch (RuntimeException e) {
        Throwable cause = e.getCause();
        if (cause == null)
            cause = e;
        throw new AcreURLFetchException("Failed to fetch URL. " + " - Network Error: " + cause.getMessage());
    } finally {
        method.abort();
    }
}

From source file:com.falcon.orca.actors.Generator.java

private HttpUriRequest prepareRequest() throws URISyntaxException, JsonProcessingException {
    HttpUriRequest request;/*from  ww  w .  j a  v a  2 s .com*/
    switch (method) {
    case POST: {
        String postUrl = isUrlDynamic ? dataStore.fillURLWithData() : url;
        AbstractHttpEntity postData;
        try {
            postData = isBodyDynamic
                    ? new StringEntity(dataStore.fillTemplateWithData(), StandardCharsets.UTF_8)
                    : new ByteArrayEntity(staticRequestData == null ? new byte[0] : staticRequestData);
        } catch (IllegalArgumentException ile) {
            postData = new ByteArrayEntity(new byte[0]);
            log.error("Post body is null, sending blank.");
        }
        request = new HttpPost(postUrl);
        ((HttpPost) request).setEntity(postData);
        break;
    }
    case GET: {
        String getUrl = isUrlDynamic ? dataStore.fillURLWithData() : url;
        request = new HttpGet(getUrl);
        break;
    }
    case PUT: {
        String putUrl = isUrlDynamic ? dataStore.fillURLWithData() : url;
        AbstractHttpEntity putData;
        try {
            putData = isBodyDynamic ? new StringEntity(dataStore.fillTemplateWithData(), StandardCharsets.UTF_8)
                    : new ByteArrayEntity(staticRequestData == null ? new byte[0] : staticRequestData);
        } catch (IllegalArgumentException ile) {
            putData = new ByteArrayEntity(new byte[0]);
            log.error("Post body is null, sending blank.");
        }
        request = new HttpPut(putUrl);
        ((HttpPut) request).setEntity(putData);
        break;
    }
    case DELETE: {
        String deleteUrl = isUrlDynamic ? dataStore.fillURLWithData() : url;
        request = new HttpDelete(deleteUrl);
        break;
    }
    case OPTIONS: {
        String optionsUrl = isUrlDynamic ? dataStore.fillURLWithData() : url;
        request = new HttpOptions(optionsUrl);
        break;
    }
    case HEAD: {
        String headUrl = isUrlDynamic ? dataStore.fillURLWithData() : url;
        request = new HttpHead(headUrl);
        break;
    }
    default:
        throw new URISyntaxException(url + ":" + method,
                "Wrong method supplied, available methods are POST, " + "GET, PUT, DELETE, HEAD, OPTIONS");
    }
    if (headers != null) {
        headers.forEach(request::addHeader);
    }
    return request;
}

From source file:edu.isi.misd.tagfiler.client.JakartaClient.java

/**
 * Verify that we have a valid control number
 * /*from w  w  w . j a va  2 s  .  c o  m*/
 * @param url
 *            the query url
 * @param cookie
 *            the cookie to be set in the request
 * @return the HTTP Response
 */
public ClientURLResponse verifyValidControlNumber(String url, String cookie) {
    HttpHead httphead = new HttpHead(url);
    httphead.setHeader("Accept", "text/uri-list");
    httphead.setHeader("Content-Type", "application/octet-stream");
    return execute(httphead, cookie);
}

From source file:com.hoccer.tools.HttpHelper.java

public static String getLocationHeader(String url)
        throws IOException, HttpClientException, HttpServerException {

    HttpHead head = new HttpHead(url);
    HttpResponse response = executeHTTPMethod(head);

    if (!response.containsHeader("Location")) {

        throw new RuntimeException("Could not retrieve location header.");
    }/*from ww  w  .  j a va  2 s. c  o  m*/

    Header locationHeader = response.getFirstHeader("Location");
    return locationHeader.getValue();
}

From source file:org.orbeon.oxf.resources.handler.HTTPURLConnection.java

public void setRequestMethod(String methodName) throws ProtocolException {
    if (connected)
        throw new ProtocolException("Can't reset method: already connected");
    if ("GET".equals(methodName))
        method = new HttpGet(url.toString());
    else if ("POST".equals(methodName))
        method = new HttpPost(url.toString());
    else if ("HEAD".equals(methodName))
        method = new HttpHead(url.toString());
    else if ("OPTIONS".equals(methodName))
        method = new HttpOptions(url.toString());
    else if ("PUT".equals(methodName))
        method = new HttpPut(url.toString());
    else if ("DELETE".equals(methodName))
        method = new HttpDelete(url.toString());
    else if ("TRACE".equals(methodName))
        method = new HttpTrace(url.toString());
    else//  w  w w. java  2s .c  o m
        throw new ProtocolException("Method " + methodName + " not supported");
}

From source file:org.eclipse.jgit.transport.http.apache.HttpClientConnection.java

public void setRequestMethod(String method) throws ProtocolException {
    this.method = method;
    if (METHOD_GET.equalsIgnoreCase(method)) {
        req = new HttpGet(url.toString());
    } else if (METHOD_HEAD.equalsIgnoreCase(method)) {
        req = new HttpHead(url.toString());
    } else if (METHOD_PUT.equalsIgnoreCase(method)) {
        req = new HttpPut(url.toString());
    } else if (METHOD_POST.equalsIgnoreCase(method)) {
        req = new HttpPost(url.toString());
    } else {/*  w w  w.j a  va 2 s  .  c om*/
        this.method = null;
        throw new UnsupportedOperationException();
    }
}