Index: components/cronet/android/test/javatests/src/org/chromium/net/TestHttpUrlRequestListener.java |
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestHttpUrlRequestListener.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestHttpUrlRequestListener.java |
index 662dba46c55b3d0bc67bd5ca903cfb8a33f0386e..089c017e57b24aba13b9cb23d0fafcbb10d56ea3 100644 |
--- a/components/cronet/android/test/javatests/src/org/chromium/net/TestHttpUrlRequestListener.java |
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestHttpUrlRequestListener.java |
@@ -39,27 +39,32 @@ public class TestHttpUrlRequestListener implements HttpUrlRequestListener { |
+ request.getContentLength()); |
Log.i(TAG, "*** Headers Are *** " + request.getAllHeaders()); |
mHttpStatusCode = request.getHttpStatusCode(); |
- mNegotiatedProtocol = request.getNegotiatedProtocol(); |
mHttpStatusText = request.getHttpStatusText(); |
+ mNegotiatedProtocol = request.getNegotiatedProtocol(); |
+ mResponseHeaders = request.getAllHeaders(); |
mStarted.open(); |
} |
@Override |
public void onRequestComplete(HttpUrlRequest request) { |
mUrl = request.getUrl(); |
- // mHttpStatusCode and mResponseHeaders are available in |
- // onResponseStarted. However when redirects are disabled, |
- // onResponseStarted is not invoked. |
- Exception exception = request.getException(); |
- if (exception != null && exception.getMessage().equals("Request failed " |
- + "because there were too many redirects or redirects have " |
- + "been disabled")) { |
+ mException = request.getException(); |
+ if (mException != null) { |
+ // When there is an exception, onResponseStarted is often not |
+ // invoked (eg. when request fails or redirects are disabled). |
+ // Populate status code and text in this case. |
mHttpStatusCode = request.getHttpStatusCode(); |
- mResponseHeaders = request.getAllHeaders(); |
+ mHttpStatusText = request.getHttpStatusText(); |
+ if (mException.getMessage().equals("Request failed " |
+ + "because there were too many redirects or redirects have " |
+ + "been disabled")) { |
+ mResponseHeaders = request.getAllHeaders(); |
+ } |
+ } else { |
+ // Read the response body if there is not an exception. |
+ mResponseAsBytes = request.getResponseAsBytes(); |
+ mResponseAsString = new String(mResponseAsBytes); |
} |
- mResponseAsBytes = request.getResponseAsBytes(); |
- mResponseAsString = new String(mResponseAsBytes); |
- mException = request.getException(); |
mComplete.open(); |
Log.i(TAG, "****** Request Complete over " + mNegotiatedProtocol |
+ ", status code is " + mHttpStatusCode); |