Java Code Examples for com.squareup.okhttp.internal.http.HttpEngine#getResponseHeaders()

The following examples show how to use com.squareup.okhttp.internal.http.HttpEngine#getResponseHeaders() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HttpResponseCache.java    From wildfly-samples with MIT License 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 2
Source File: HttpResponseCache.java    From L.TileLayer.Cordova with MIT License 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 3
Source File: HttpResponseCache.java    From crosswalk-cordova-android with Apache License 2.0 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 4
Source File: HttpResponseCache.java    From IoTgo_Android_App with MIT License 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 5
Source File: HttpResponseCache.java    From android-discourse with Apache License 2.0 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection) throws IOException {
    HttpEngine httpEngine = getHttpEngine(httpConnection);
    URI uri = httpEngine.getUri();
    ResponseHeaders response = httpEngine.getResponseHeaders();
    RawHeaders varyHeaders = httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
    Entry entry = new Entry(uri, varyHeaders, httpConnection);
    DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse) ? ((EntryCacheResponse) conditionalCacheHit).snapshot : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
    DiskLruCache.Editor editor = null;
    try {
        editor = snapshot.edit(); // returns null if snapshot is not current
        if (editor != null) {
            entry.writeTo(editor);
            editor.commit();
        }
    } catch (IOException e) {
        abortQuietly(editor);
    }
}
 
Example 6
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 7
Source File: HttpResponseCache.java    From phonegapbootcampsite with MIT License 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 8
Source File: HttpResponseCache.java    From reader with MIT License 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 9
Source File: HttpResponseCache.java    From CordovaYoutubeVideoPlayer with MIT License 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 10
Source File: HttpResponseCache.java    From reader with MIT License 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 11
Source File: Job.java    From CordovaYoutubeVideoPlayer with MIT License 4 votes vote down vote up
private Response execute() throws IOException {
  Connection connection = null;
  Response redirectedBy = null;

  while (true) {
    HttpEngine engine = newEngine(connection);

    Request.Body body = request.body();
    if (body != null) {
      MediaType contentType = body.contentType();
      if (contentType == null) throw new IllegalStateException("contentType == null");
      if (engine.getRequestHeaders().getContentType() == null) {
        engine.getRequestHeaders().setContentType(contentType.toString());
      }
    }

    engine.sendRequest();

    if (body != null) {
      body.writeTo(engine.getRequestBody());
    }

    engine.readResponse();

    int responseCode = engine.getResponseCode();
    Dispatcher.RealResponseBody responseBody = new Dispatcher.RealResponseBody(
        engine.getResponseHeaders(), engine.getResponseBody());

    Response response = new Response.Builder(request, responseCode)
        .rawHeaders(engine.getResponseHeaders().getHeaders())
        .body(responseBody)
        .redirectedBy(redirectedBy)
        .build();

    Request redirect = processResponse(engine, response);

    if (redirect == null) {
      engine.automaticallyReleaseConnectionToPool();
      return response;
    }

    // TODO: fail if too many redirects
    // TODO: fail if not following redirects
    // TODO: release engine

    connection = sameConnection(request, redirect) ? engine.getConnection() : null;
    redirectedBy = response;
    request = redirect;
  }
}
 
Example 12
Source File: Job.java    From L.TileLayer.Cordova with MIT License 4 votes vote down vote up
private Response execute() throws IOException {
  Connection connection = null;
  Response redirectedBy = null;

  while (true) {
    HttpEngine engine = newEngine(connection);

    Request.Body body = request.body();
    if (body != null) {
      MediaType contentType = body.contentType();
      if (contentType == null) throw new IllegalStateException("contentType == null");
      if (engine.getRequestHeaders().getContentType() == null) {
        engine.getRequestHeaders().setContentType(contentType.toString());
      }
    }

    engine.sendRequest();

    if (body != null) {
      body.writeTo(engine.getRequestBody());
    }

    engine.readResponse();

    int responseCode = engine.getResponseCode();
    Dispatcher.RealResponseBody responseBody = new Dispatcher.RealResponseBody(
        engine.getResponseHeaders(), engine.getResponseBody());

    Response response = new Response.Builder(request, responseCode)
        .rawHeaders(engine.getResponseHeaders().getHeaders())
        .body(responseBody)
        .redirectedBy(redirectedBy)
        .build();

    Request redirect = processResponse(engine, response);

    if (redirect == null) {
      engine.automaticallyReleaseConnectionToPool();
      return response;
    }

    // TODO: fail if too many redirects
    // TODO: fail if not following redirects
    // TODO: release engine

    connection = sameConnection(request, redirect) ? engine.getConnection() : null;
    redirectedBy = response;
    request = redirect;
  }
}
 
Example 13
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 4 votes vote down vote up
@Override public CacheRequest put(URI uri, URLConnection urlConnection) throws IOException {
  if (!(urlConnection instanceof HttpURLConnection)) {
    return null;
  }

  HttpURLConnection httpConnection = (HttpURLConnection) urlConnection;
  String requestMethod = httpConnection.getRequestMethod();
  String key = uriToKey(uri);

  if (requestMethod.equals("POST") || requestMethod.equals("PUT") || requestMethod.equals(
      "DELETE")) {
    try {
      cache.remove(key);
    } catch (IOException ignored) {
      // The cache cannot be written.
    }
    return null;
  } else if (!requestMethod.equals("GET")) {
    // Don't cache non-GET responses. We're technically allowed to cache
    // HEAD requests and some POST requests, but the complexity of doing
    // so is high and the benefit is low.
    return null;
  }

  HttpEngine httpEngine = getHttpEngine(httpConnection);
  if (httpEngine == null) {
    // Don't cache unless the HTTP implementation is ours.
    return null;
  }

  ResponseHeaders response = httpEngine.getResponseHeaders();
  if (response.hasVaryAll()) {
    return null;
  }

  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Editor editor = null;
  try {
    editor = cache.edit(key);
    if (editor == null) {
      return null;
    }
    entry.writeTo(editor);
    return new CacheRequestImpl(editor);
  } catch (IOException e) {
    abortQuietly(editor);
    return null;
  }
}
 
Example 14
Source File: Job.java    From reader with MIT License 4 votes vote down vote up
private Response execute() throws IOException {
  Connection connection = null;
  Response redirectedBy = null;

  while (true) {
    HttpEngine engine = newEngine(connection);

    Request.Body body = request.body();
    if (body != null) {
      MediaType contentType = body.contentType();
      if (contentType == null) throw new IllegalStateException("contentType == null");
      if (engine.getRequestHeaders().getContentType() == null) {
        engine.getRequestHeaders().setContentType(contentType.toString());
      }
    }

    engine.sendRequest();

    if (body != null) {
      body.writeTo(engine.getRequestBody());
    }

    engine.readResponse();

    int responseCode = engine.getResponseCode();
    Dispatcher.RealResponseBody responseBody = new Dispatcher.RealResponseBody(
        engine.getResponseHeaders(), engine.getResponseBody());

    Response response = new Response.Builder(request, responseCode)
        .rawHeaders(engine.getResponseHeaders().getHeaders())
        .body(responseBody)
        .redirectedBy(redirectedBy)
        .build();

    Request redirect = processResponse(engine, response);

    if (redirect == null) {
      engine.automaticallyReleaseConnectionToPool();
      return response;
    }

    // TODO: fail if too many redirects
    // TODO: fail if not following redirects
    // TODO: release engine

    connection = sameConnection(request, redirect) ? engine.getConnection() : null;
    redirectedBy = response;
    request = redirect;
  }
}
 
Example 15
Source File: Job.java    From phonegapbootcampsite with MIT License 4 votes vote down vote up
private Response execute() throws IOException {
  Connection connection = null;
  Response redirectedBy = null;

  while (true) {
    HttpEngine engine = newEngine(connection);

    Request.Body body = request.body();
    if (body != null) {
      MediaType contentType = body.contentType();
      if (contentType == null) throw new IllegalStateException("contentType == null");
      if (engine.getRequestHeaders().getContentType() == null) {
        engine.getRequestHeaders().setContentType(contentType.toString());
      }
    }

    engine.sendRequest();

    if (body != null) {
      body.writeTo(engine.getRequestBody());
    }

    engine.readResponse();

    int responseCode = engine.getResponseCode();
    Dispatcher.RealResponseBody responseBody = new Dispatcher.RealResponseBody(
        engine.getResponseHeaders(), engine.getResponseBody());

    Response response = new Response.Builder(request, responseCode)
        .rawHeaders(engine.getResponseHeaders().getHeaders())
        .body(responseBody)
        .redirectedBy(redirectedBy)
        .build();

    Request redirect = processResponse(engine, response);

    if (redirect == null) {
      engine.automaticallyReleaseConnectionToPool();
      return response;
    }

    // TODO: fail if too many redirects
    // TODO: fail if not following redirects
    // TODO: release engine

    connection = sameConnection(request, redirect) ? engine.getConnection() : null;
    redirectedBy = response;
    request = redirect;
  }
}
 
Example 16
Source File: HttpResponseCache.java    From crosswalk-cordova-android with Apache License 2.0 4 votes vote down vote up
@Override public CacheRequest put(URI uri, URLConnection urlConnection) throws IOException {
  if (!(urlConnection instanceof HttpURLConnection)) {
    return null;
  }

  HttpURLConnection httpConnection = (HttpURLConnection) urlConnection;
  String requestMethod = httpConnection.getRequestMethod();

  if (maybeRemove(requestMethod, uri)) {
    return null;
  }
  if (!requestMethod.equals("GET")) {
    // Don't cache non-GET responses. We're technically allowed to cache
    // HEAD requests and some POST requests, but the complexity of doing
    // so is high and the benefit is low.
    return null;
  }

  HttpEngine httpEngine = getHttpEngine(httpConnection);
  if (httpEngine == null) {
    // Don't cache unless the HTTP implementation is ours.
    return null;
  }

  ResponseHeaders response = httpEngine.getResponseHeaders();
  if (response.hasVaryAll()) {
    return null;
  }

  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Editor editor = null;
  try {
    editor = cache.edit(uriToKey(uri));
    if (editor == null) {
      return null;
    }
    entry.writeTo(editor);
    return new CacheRequestImpl(editor);
  } catch (IOException e) {
    abortQuietly(editor);
    return null;
  }
}
 
Example 17
Source File: HttpResponseCache.java    From phonegapbootcampsite with MIT License 4 votes vote down vote up
@Override public CacheRequest put(URI uri, URLConnection urlConnection) throws IOException {
  if (!(urlConnection instanceof HttpURLConnection)) {
    return null;
  }

  HttpURLConnection httpConnection = (HttpURLConnection) urlConnection;
  String requestMethod = httpConnection.getRequestMethod();

  if (maybeRemove(requestMethod, uri)) {
    return null;
  }
  if (!requestMethod.equals("GET")) {
    // Don't cache non-GET responses. We're technically allowed to cache
    // HEAD requests and some POST requests, but the complexity of doing
    // so is high and the benefit is low.
    return null;
  }

  HttpEngine httpEngine = getHttpEngine(httpConnection);
  if (httpEngine == null) {
    // Don't cache unless the HTTP implementation is ours.
    return null;
  }

  ResponseHeaders response = httpEngine.getResponseHeaders();
  if (response.hasVaryAll()) {
    return null;
  }

  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Editor editor = null;
  try {
    editor = cache.edit(uriToKey(uri));
    if (editor == null) {
      return null;
    }
    entry.writeTo(editor);
    return new CacheRequestImpl(editor);
  } catch (IOException e) {
    abortQuietly(editor);
    return null;
  }
}
 
Example 18
Source File: Job.java    From bluemix-parking-meter with MIT License 4 votes vote down vote up
private Response execute() throws IOException {
  Connection connection = null;
  Response redirectedBy = null;

  while (true) {
    HttpEngine engine = newEngine(connection);

    Request.Body body = request.body();
    if (body != null) {
      MediaType contentType = body.contentType();
      if (contentType == null) throw new IllegalStateException("contentType == null");
      if (engine.getRequestHeaders().getContentType() == null) {
        engine.getRequestHeaders().setContentType(contentType.toString());
      }
    }

    engine.sendRequest();

    if (body != null) {
      body.writeTo(engine.getRequestBody());
    }

    engine.readResponse();

    int responseCode = engine.getResponseCode();
    Dispatcher.RealResponseBody responseBody = new Dispatcher.RealResponseBody(
        engine.getResponseHeaders(), engine.getResponseBody());

    Response response = new Response.Builder(request, responseCode)
        .rawHeaders(engine.getResponseHeaders().getHeaders())
        .body(responseBody)
        .redirectedBy(redirectedBy)
        .build();

    Request redirect = processResponse(engine, response);

    if (redirect == null) {
      engine.automaticallyReleaseConnectionToPool();
      return response;
    }

    // TODO: fail if too many redirects
    // TODO: fail if not following redirects
    // TODO: release engine

    connection = sameConnection(request, redirect) ? engine.getConnection() : null;
    redirectedBy = response;
    request = redirect;
  }
}
 
Example 19
Source File: HttpResponseCache.java    From android-discourse with Apache License 2.0 4 votes vote down vote up
@Override
public CacheRequest put(URI uri, URLConnection urlConnection) throws IOException {
    if (!(urlConnection instanceof HttpURLConnection)) {
        return null;
    }

    HttpURLConnection httpConnection = (HttpURLConnection) urlConnection;
    String requestMethod = httpConnection.getRequestMethod();

    if (maybeRemove(requestMethod, uri)) {
        return null;
    }
    if (!requestMethod.equals("GET")) {
        // Don't cache non-GET responses. We're technically allowed to cache
        // HEAD requests and some POST requests, but the complexity of doing
        // so is high and the benefit is low.
        return null;
    }

    HttpEngine httpEngine = getHttpEngine(httpConnection);
    if (httpEngine == null) {
        // Don't cache unless the HTTP implementation is ours.
        return null;
    }

    ResponseHeaders response = httpEngine.getResponseHeaders();
    if (response.hasVaryAll()) {
        return null;
    }

    RawHeaders varyHeaders = httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
    Entry entry = new Entry(uri, varyHeaders, httpConnection);
    DiskLruCache.Editor editor = null;
    try {
        editor = cache.edit(uriToKey(uri));
        if (editor == null) {
            return null;
        }
        entry.writeTo(editor);
        return new CacheRequestImpl(editor);
    } catch (IOException e) {
        abortQuietly(editor);
        return null;
    }
}
 
Example 20
Source File: Job.java    From wildfly-samples with MIT License 4 votes vote down vote up
private Response execute() throws IOException {
  Connection connection = null;
  Response redirectedBy = null;

  while (true) {
    HttpEngine engine = newEngine(connection);

    Request.Body body = request.body();
    if (body != null) {
      MediaType contentType = body.contentType();
      if (contentType == null) throw new IllegalStateException("contentType == null");
      if (engine.getRequestHeaders().getContentType() == null) {
        engine.getRequestHeaders().setContentType(contentType.toString());
      }
    }

    engine.sendRequest();

    if (body != null) {
      body.writeTo(engine.getRequestBody());
    }

    engine.readResponse();

    int responseCode = engine.getResponseCode();
    Dispatcher.RealResponseBody responseBody = new Dispatcher.RealResponseBody(
        engine.getResponseHeaders(), engine.getResponseBody());

    Response response = new Response.Builder(request, responseCode)
        .rawHeaders(engine.getResponseHeaders().getHeaders())
        .body(responseBody)
        .redirectedBy(redirectedBy)
        .build();

    Request redirect = processResponse(engine, response);

    if (redirect == null) {
      engine.automaticallyReleaseConnectionToPool();
      return response;
    }

    // TODO: fail if too many redirects
    // TODO: fail if not following redirects
    // TODO: release engine

    connection = sameConnection(request, redirect) ? engine.getConnection() : null;
    redirectedBy = response;
    request = redirect;
  }
}