History log of /libcore/luni/src/main/java/java/net/HttpURLConnection.java
Revision Date Author Comments
ab7ae56666faffd5ad7aecfc07500ad5f4983ff2 15-Dec-2011 Jesse Wilson <jessewilson@google.com> Document pre-Froyo bugs in HttpURLConnection

Bug: http://b/5419660
Change-Id: I2742711092593ff70c38eba68f37343bb0eb4aee
2d9fa917aae6a6da38e9d1eda05841ffdf8855bb 15-Dec-2011 Jesse Wilson <jessewilson@google.com> Document the effect on timeouts of having both IPv4 and IPv6 addresses

Bug: http://b/3441111

Change-Id: Ib4c2e3e0d8d86eb5eb77cf92a0814c7444fd153f
1ce4f4b41b4b52e50bee1f4c4912ccede16877cf 14-Dec-2011 Jesse Wilson <jessewilson@google.com> Improve the text on disabling connection reuse.

Change-Id: I4e91d38e14e293fd2e6ea7fb77a4df72a697da6a
0613de89655e481fa610bfd4f1bcaeeae3272205 14-Dec-2011 Jesse Wilson <jessewilson@google.com> Document that disconnect() doesn't release sockets.

We could make disconnect() work, but it's a lot of complexity for
little gain. The core problem is that by the time the user calls
disconnect(), the connection has already been pooled. On the RI,
disconnect() will close a socket connection if it hasn't yet been
removed from the pool. Our pooling always-on or always-off behavior
is simpler and more predictable.

Bug: http://b/4148042
Change-Id: I61ef2ccb898f3ffaa08cedc70ee9e728fc1889b9
d742d7fc7f0593eb8c6e4ac9dd4c0f6a80374e46 05-May-2011 Jesse Wilson <jessewilson@google.com> Use GET after a POST is redirected.

Also dropping support for response code 305 Use Proxy, which
is seldom used, and whose behavior is quite different from
Chrome and Firefox. This is an intentional delta from the RI.

Also testing disconnect().

Change-Id: I80433f4776a2cfc5e228179421a787a44a4ded69
http://b/3180373
953df613522e12a418cb7cb73248594d6c9f53d4 03-May-2011 Jesse Wilson <jessewilson@google.com> Refactor HttpURLConnection implementation.

Break HttpURLConnectionImpl into two parts: the part that
implements the Java API (that follows redirects etc.) and
the part that speaks HTTP. The HTTP part is called HttpEngine,
and it can only be used for a single HTTP request. This makes
it easier to set request properties that only apply to a
single socket request.

Tests for 'Vary', 'Content-Location' and warnings.

For simplicity of implementation I've chosen not to support
'Vary' at this time.

The 'Content-Location' header doesn't require any work from
the cache.

Warnings are ugly but allow the caller to identify when the
cache results may be problematic.

Also breaking HttpResponseCache's dependency on HttpURLConnectionImpl
so it can be tested on the RI.

Change-Id: Idbabb51251f479c2cdea4e0fceb029bfd07182be
http://b/3180373
8bccf8cdf7a3b8a6e90bb1b411a957b6368e4a1a 12-Apr-2011 Brian Carlstrom <bdc@google.com> Improve HttpsURLConnection documentation with examples

http://code.google.com/p/android/issues/detail?id=16041

Change-Id: I2e596ef36306b70cdb071b91d8707f015d9b251b
1208f030332b3e1eae3d55d416f1af1d68f7e33d 05-Apr-2011 Elliott Hughes <enh@google.com> More MulticastSocket cleanup.

Only getInterface still has any hackery left.

Change-Id: Ica1a3263db6d073e0ec42896591ff4c2e17452ff
0519c0de2e55eeb3566c5ee913a500eb45886f7f 25-Mar-2011 Elliott Hughes <enh@google.com> Better detail message when HttpURLConnection.setRequestMethod fails.

To wit:

java.net.ProtocolException: Unknown method 'post'; must be one of [OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE]
at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:639)

Bug: http://code.google.com/p/android/issues/detail?id=15721
Change-Id: Ib4c185247985628a4df7e591f87e1c2c8e58ebdb
eb09bc383703f0b2d6c99daf83479d5ce573a2f9 19-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix inconsistencies in HttpURLConnection docs.

Change-Id: I999b2cf7b904659923e02111aa62946d488e159e
http://code.google.com/p/android/issues/detail?id=14933
5aafac4db69e6d087c512cdfa5c7c0e2f1611681 19-Mar-2011 Jesse Wilson <jessewilson@google.com> Move URLConnection classes to libcore.net.

Change-Id: I14bf8373dfce50dda94e1a64419b9a8a9cf3c82e
0d4ce4227fa818288b8db762b640dfa21e3162f5 12-Jan-2011 Elliott Hughes <enh@google.com> Change all "final static"s to "static final".

Just so we sound like native speakers.

Change-Id: I4d98ec7519af8c1578609945ca9d480484b82874
87548e8585334658c3ee89050ec917a10ca35e5a 07-Jan-2011 Elliott Hughes <enh@google.com> More SecurityManager cleanup.

Bug: 2585285
Change-Id: Ib9c5fdadc1361d67227b6f82a774b76c53840ff0
ad41624e761bcf1af9c8008eb45187fc13983717 07-Jan-2011 Elliott Hughes <enh@google.com> Retire SecurityManager.

This change removes all the code that was calling getSecurityManager, and
removes all use of AccessController.doPrivileged. It also changes the
implementation of AccessController so it doesn't actually do anything; it's
only there for source-level compatibility.

Bug: 2585285
Change-Id: I1f0295a4f12bce0316d8073011d8593fee116f71
23e3c8dad87724420bad70e9e9c4e8b94a565f14 23-Oct-2010 Jesse Wilson <jessewilson@google.com> Documenting WiFi sign in and SSL fallback with HttpURLConnection.

Change-Id: Ibb0f86aefd4d4db8d1560608f62735a357da73ea
http://b/2860493
d4bddd7d1fb7b1b7f0836648228235c6e4b56a18 16-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix two HTTP issues that came up when writing HttpURLConnection docs.

We're now more careful about which headers are sent to HTTP proxies.
And getContentEncoding() is better documented.

Change-Id: I04241f99c2f32c25ba005fbd6ff9ef7236c3c9d3
11b9d26222315d4ddea223ce8f119ec25a1ba3d5 13-Sep-2010 Jesse Wilson <jessewilson@google.com> Even more follow up to enh's HttpURLConnection docs review.

Change-Id: Ia70565470d6c605d0c24105bc4ef5c712e3301a1
https://android-git.corp.google.com/g/67703
55bbb57dc76ab0231583460f5af4083f4f48f8f5 12-Sep-2010 Jesse Wilson <jessewilson@google.com> More follow up to enh's HttpURLConnection docs review.

See the original review here:
https://android-git.corp.google.com/g/#patch,sidebyside,67584,1,luni/src/main/java/java/net/HttpURLConnection.java

Change-Id: If296b35e53e7bde88403e9124038f38dd725f83b
8c283b62cd1952ffa145332d94ed691acf4ac87e 11-Sep-2010 Jesse Wilson <jessewilson@google.com> Document HttpURLConnection's many features and misfeatures.

Change-Id: Ib6d9f05e6a23bc44bd5c8838c9e8098b15d19810
125f068f0a6cd739beac97821c9421cf8317cc87 20-Aug-2010 Jesse Wilson <jessewilson@google.com> Fix a bug when user sets "Content-Encoding: chunked" manually.

We used to try to build a -1-sized ByteArrayOutputStream, which
failed miserably with an exception.

Change-Id: Ia6fa72c639a14c03f03b6f73083ce37ffab8b4e5
da289bcd0a9e207cc03c752f7c21c9004056e179 09-Jul-2010 Jesse Wilson <jessewilson@google.com> Address feedback from change 57066,
Rewrite the main request retry loop of HttpURLConnection.

Change-Id: I7e10e356614970971253f2e3f60d173a2e5433d4
ffd579b668428272b78f5c6c64f9c89766f37c1a 09-Jul-2010 Jesse Wilson <jessewilson@google.com> Rewrite the main request retry loop of HttpURLConnection.

We had problems where HTTP auth failures weren't eligible
for automatic retries, particularly when HTTP post was
in use.

This fixes that problem and generally cleans up the HTTP
request loop. In particular:
- Be more careful about keeping state about whether
we've sent a request or a request header.
- Document the nuanced behavior around when headers are
transmitted.
- Simplify the daisy-chain of methods. Formerly we had
sendReqeust, writeRequest, doRequest, and doRequestInternal.
We now have more intention-revealing method names.
- Manage reentrant calls to doRequest(). Previously weird
things would happen, such as the following chain of calls:
doRequest()
doRequestInternal()
sendRequest()
readServerResponse()
maybeCache()
ResponseCache.put()
getHeaders()
doRequest()
Things are now more straight forward and retrieveResponse()
initializes everything.
- Throw HttpRetryException when we should.

Also moving inner HttpOutputStreams into their own classes and
splitting DefaultHttpOutputStream into ChunkedOutputStream and
RetryableOutputStream.

Change-Id: I5c1da717f0dee7ecc896e51701b702e535867417
c8977f474b30c5f3807398859a6b16687af6fc7b 15-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing various problems with HTTPS proxies thru HTTP.

- reading extra bytes from the server depending on available()
- not sending the port with the proxy request
- returning a read-til-the-end stream instead of a read-0-bytes-stream
on CONNECT requests
- fixing MockWebServer to omit the unnecessary \r\n after
the response body
- tests no longer mask the issue by unambiguously reading characters.
Trailing newlines aren't discarded!
- New tests when content-length and content disagree. The RI fails
the test when the transfer-encoding is not chunked.

Change-Id: I888569844d323bc770cd5bb95ac71c740dd5e720
b1396870f92135aa140bd2b86221768dea5bc11d 25-May-2010 Elliott Hughes <enh@google.com> Remove the luni localized exception messages.

Also fix a bug I introduced in KXmlSerializer: s.isEmpty() is not
equivalent to "".equals(s) if s is allowed to be null.

Bug: 1251121
Change-Id: I41a0a98ffb49f214041c9110f824d327af5c34e8
f33eae7e84eb6d3b0f4e86b59605bb3de73009f3 13-May-2010 Elliott Hughes <enh@google.com> Remove all trailing whitespace from the dalvik team-maintained parts of libcore.

Gentlemen, you may now set your editors to "strip trailing whitespace"...

Change-Id: I85b2f6c80e5fbef1af6cab11789790b078c11b1b
fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726 13-May-2010 Elliott Hughes <enh@google.com> Remove //$NON-NLS-\d$ cruft.

Mostly done by perl(1), with manual cleanup of the few misspelled instances.
This makes our trailing whitespace slightly worse, but I'll fix all that with
a follow-on change.

Change-Id: I0b4ca98819be6f9519c4ba980d759bd1ee1a0303
4fefecee9d4a5d2a4510f516b4015607b19e8d09 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
f5597e626ecf7949d249dea08c1a2964d890ec11 25-Jul-2009 Jesse Wilson <jessewilson@google.com> Integrate luni module (but not tests) to Harmony r772995.

Notable changes
- Stripped "@since Android 1.0" from many files. Most files
are now 100% the same in Dalvik and Harmony.
- AbstractStringBuilder.reverse() supports surrogates
- AbstractStringBuilder shares less to waste less memory
- Bitset optimized
- BufferedInputStream changed to support unsynchronized close()
- BufferedOutputStream does flushInternal
- BufferedReader supports EBCDIC NEL
- Collections.synchronizedList().indexOf() does a copy for more concurrency
- Classes in nio module changed: DatagramChannelImpl, SocketChannelImpl
and ServerSocketChannelImpl (these depend on internal APIs changed in
this update)
- DataInputStream/DataOutputStream now use a small buffer to limit the
number of times the underlying stream is accessed
- Date now has a minutes offset, more efficient toString()
- ExposedByteArrayInputStream: new internal class
- DeleteOnExit moved to top-level class
- FileDescriptor.isValid() now non-native
- Float, Double lessThan optimized (fix for compare(-0.0F, 0.0F) still pending)
- FileURLConnection now guesses content types from streams
- HashMap iterator changes
- Hashtable iterator changes
- INetworkSystem
- removes bind2(), createMulticastSocket, sendStream(),
- renames createSocket to createStreamSocket
- JarURLConnection rewritten
- LinkedHashMap: new iterator
- Locale, Currency, TimeZone: now use ICU in Harmony, plain Java in Dalvik
- ObjectInputStream: Accessor objects in Harmony, direct native in Dalvik
- ProxyClassFile - many changes
- String - optimized ascii for toLowerCase, toUpperCase, compare
- Timer - rewritten
- TreeMap - rewritten
- URLClassLoader - new
- URLConnection - new guessContentTypeFromStream(), uses org.apache.harmony.awt.www.content
to lookup content type handlers
adc854b798c1cfe3bfd4c27d68d5cee38ca617da 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
1c0fed63c71ddb230f3b304aac12caffbedf2f21 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
dd828f42a5c83b4270d4fbf6fce2da1878f1e84a 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
fdb2704414a9ed92394ada0d1395e4db86889465 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution