OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.net; | 5 package org.chromium.net; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.text.TextUtils; | 8 import android.text.TextUtils; |
9 | 9 |
10 import org.apache.http.HttpStatus; | 10 import org.apache.http.HttpStatus; |
(...skipping 23 matching lines...) Expand all Loading... |
34 class HttpUrlConnectionUrlRequest implements HttpUrlRequest { | 34 class HttpUrlConnectionUrlRequest implements HttpUrlRequest { |
35 | 35 |
36 private static final int MAX_CHUNK_SIZE = 8192; | 36 private static final int MAX_CHUNK_SIZE = 8192; |
37 | 37 |
38 private static final int CONNECT_TIMEOUT = 3000; | 38 private static final int CONNECT_TIMEOUT = 3000; |
39 | 39 |
40 private static final int READ_TIMEOUT = 90000; | 40 private static final int READ_TIMEOUT = 90000; |
41 | 41 |
42 private final Context mContext; | 42 private final Context mContext; |
43 | 43 |
| 44 private final String mDefaultUserAgent; |
| 45 |
44 private final String mUrl; | 46 private final String mUrl; |
45 | 47 |
46 private final Map<String, String> mHeaders; | 48 private final Map<String, String> mHeaders; |
47 | 49 |
48 private final WritableByteChannel mSink; | 50 private final WritableByteChannel mSink; |
49 | 51 |
50 private final HttpUrlRequestListener mListener; | 52 private final HttpUrlRequestListener mListener; |
51 | 53 |
52 private IOException mException; | 54 private IOException mException; |
53 | 55 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 private String mMethod; | 90 private String mMethod; |
89 | 91 |
90 private InputStream mResponseStream; | 92 private InputStream mResponseStream; |
91 | 93 |
92 private final Object mLock; | 94 private final Object mLock; |
93 | 95 |
94 private static ExecutorService sExecutorService; | 96 private static ExecutorService sExecutorService; |
95 | 97 |
96 private static final Object sExecutorServiceLock = new Object(); | 98 private static final Object sExecutorServiceLock = new Object(); |
97 | 99 |
98 HttpUrlConnectionUrlRequest(Context context, String url, | 100 HttpUrlConnectionUrlRequest(Context context, String defaultUserAgent, |
99 int requestPriority, Map<String, String> headers, | 101 String url, int requestPriority, Map<String, String> headers, |
100 HttpUrlRequestListener listener) { | 102 HttpUrlRequestListener listener) { |
101 this(context, url, requestPriority, headers, | 103 this(context, defaultUserAgent, url, requestPriority, headers, |
102 new ChunkedWritableByteChannel(), listener); | 104 new ChunkedWritableByteChannel(), listener); |
103 } | 105 } |
104 | 106 |
105 HttpUrlConnectionUrlRequest(Context context, String url, | 107 HttpUrlConnectionUrlRequest(Context context, String defaultUserAgent, |
106 int requestPriority, Map<String, String> headers, | 108 String url, int requestPriority, Map<String, String> headers, |
107 WritableByteChannel sink, HttpUrlRequestListener listener) { | 109 WritableByteChannel sink, HttpUrlRequestListener listener) { |
108 if (context == null) { | 110 if (context == null) { |
109 throw new NullPointerException("Context is required"); | 111 throw new NullPointerException("Context is required"); |
110 } | 112 } |
111 if (url == null) { | 113 if (url == null) { |
112 throw new NullPointerException("URL is required"); | 114 throw new NullPointerException("URL is required"); |
113 } | 115 } |
114 mContext = context; | 116 mContext = context; |
| 117 mDefaultUserAgent = defaultUserAgent; |
115 mUrl = url; | 118 mUrl = url; |
116 mHeaders = headers; | 119 mHeaders = headers; |
117 mSink = sink; | 120 mSink = sink; |
118 mListener = listener; | 121 mListener = listener; |
119 mLock = new Object(); | 122 mLock = new Object(); |
120 } | 123 } |
121 | 124 |
122 private static ExecutorService getExecutor() { | 125 private static ExecutorService getExecutor() { |
123 synchronized (sExecutorServiceLock) { | 126 synchronized (sExecutorServiceLock) { |
124 if (sExecutorService == null) { | 127 if (sExecutorService == null) { |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 header.getValue()); | 236 header.getValue()); |
234 } | 237 } |
235 } | 238 } |
236 | 239 |
237 if (mOffset != 0) { | 240 if (mOffset != 0) { |
238 mConnection.setRequestProperty("Range", | 241 mConnection.setRequestProperty("Range", |
239 "bytes=" + mOffset + "-"); | 242 "bytes=" + mOffset + "-"); |
240 } | 243 } |
241 | 244 |
242 if (mConnection.getRequestProperty("User-Agent") == null) { | 245 if (mConnection.getRequestProperty("User-Agent") == null) { |
243 mConnection.setRequestProperty("User-Agent", | 246 mConnection.setRequestProperty("User-Agent", mDefaultUserAgent); |
244 UserAgent.from(mContext)); | |
245 } | 247 } |
246 | 248 |
247 if (mPostData != null || mPostDataChannel != null) { | 249 if (mPostData != null || mPostDataChannel != null) { |
248 uploadData(); | 250 uploadData(); |
249 } | 251 } |
250 | 252 |
251 InputStream stream = null; | 253 InputStream stream = null; |
252 try { | 254 try { |
253 // We need to open the stream before asking for the response | 255 // We need to open the stream before asking for the response |
254 // code. | 256 // code. |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 } | 515 } |
514 return mConnection.getHeaderFields(); | 516 return mConnection.getHeaderFields(); |
515 } | 517 } |
516 | 518 |
517 private void validateNotStarted() { | 519 private void validateNotStarted() { |
518 if (mStarted) { | 520 if (mStarted) { |
519 throw new IllegalStateException("Request already started"); | 521 throw new IllegalStateException("Request already started"); |
520 } | 522 } |
521 } | 523 } |
522 } | 524 } |
OLD | NEW |