Java Code Examples for java.net.HttpURLConnection.getDoOutput()

The following are Jave code examples for showing how to use getDoOutput() of the java.net.HttpURLConnection class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
Example 1
Project: iosched-reader   File: AbstractHttpClient.java   Source Code and License Vote up 4 votes
/**
 * This is the method that drives each request. It implements the request
 * lifecycle defined as open, prepare, write, read. Each of these methods in
 * turn delegates to the {@link RequestHandler} associated with this client.
 *
 * @param path Whole or partial URL string, will be appended to baseUrl
 * @param httpMethod Request method
 * @param contentType MIME type of the request
 * @param content Request data
 * @return Response object
 * @throws HttpRequestException
 */
@SuppressWarnings("finally")
protected HttpResponse doHttpMethod(String path, HttpMethod httpMethod, String contentType,
        byte[] content) throws HttpRequestException {

    HttpURLConnection uc = null;
    HttpResponse httpResponse = null;

    try {
        isConnected = false;
        uc = openConnection(path);
        prepareConnection(uc, httpMethod, contentType);
        appendRequestHeaders(uc);
        if (requestLogger.isLoggingEnabled()) {
            requestLogger.logRequest(uc, content);
        }
        // Explicit connect not required, but lets us easily determine when
        // possible timeout exception occurred
        uc.connect();
        isConnected = true;
        if (uc.getDoOutput() && content != null) {
            writeOutputStream(uc, content);
        }
        if (uc.getDoInput()) {
            httpResponse = readInputStream(uc);
        } else {
            httpResponse = new HttpResponse(uc, null);
        }
    } catch (Exception e) {
        // Try reading the error stream to populate status code such as 404
        try {
            httpResponse = readErrorStream(uc);
        } catch (Exception ee) {
            e.printStackTrace();
            // Must catch IOException, but swallow to show first cause only
        } finally {
            // if status available, return it else throw
            if (httpResponse != null && httpResponse.getStatus() > 0) {
                return httpResponse;
            }
            throw new HttpRequestException(e, httpResponse);
        }
    } finally {
        if (requestLogger.isLoggingEnabled()) {
            requestLogger.logResponse(httpResponse);
        }
        if (uc != null) {
            uc.disconnect();
        }
    }
    return httpResponse;
}