1
0
mirror of https://github.com/square/okhttp.git synced 2026-01-22 15:42:00 +03:00
Commit Graph

810 Commits

Author SHA1 Message Date
Jake Wharton
625909bcd0 Merge pull request #533 from square/jwilson_0215_rethink_recycle
Move connection pooling logic.
2014-02-17 17:13:53 -08:00
Jake Wharton
000e62ec37 Merge pull request #534 from square/jwilson_0217_buffered_sink
BufferedSink.
2014-02-17 15:37:05 -08:00
Jesse Wilson
5be60e4b70 Merge pull request #535 from square/jwilson_0217_base64
Give Base64 lots of love.
2014-02-17 18:33:09 -05:00
jwilson
167245bb4a Give Base64 lots of love.
Fix some bugs, such as decoding of input that contains lots
of padding or whitespace. See
https://code.google.com/p/android/issues/detail?id=66078

Improve performance by correctly guessing the output array
size whenever the input doesn't contain whitespace.

Build Base64 into ByteString, and expose it through there
only.

Use more reasonable names in the implementation.
2014-02-17 13:53:39 -05:00
jwilson
415841c48f BufferedSink. 2014-02-17 09:18:53 -05:00
jwilson
dac5aed3d5 Move connection pooling logic.
Previously we had this ugly, awkward release() method that
attempted to manage connection pooling, discarding streams
for caching, and closing broken streams.

Move connection reuse to HttpConnection, with policy informed
by HttpEngine. It specifies what to do when the connection
becomes idle: pool, close or hold. The connection does what
it's told.
2014-02-15 18:44:43 -05:00
Jesse Wilson
ce76caedda Merge pull request #532 from square/jwilson_0215_statemachine
Enforce the implicit state machine in HttpConnection.
2014-02-15 13:30:23 -05:00
jwilson
322e9f3700 Enforce the implicit state machine in HttpConnection.
This checks that calls into HttpConnection occur in the correct
sequence.

Once this is merged I can follow up by making HttpConnection
responsible for its own pooling rather than relying on HttpEngine
to do that work.
2014-02-15 13:30:15 -05:00
Jesse Wilson
4caed5ca3b Merge pull request #530 from square/jwilson_0214_http_connection
Split HttpTransport in two.
2014-02-14 16:56:50 -05:00
jwilson
504b9cf55a Split HttpTransport in two.
The new (awkwardly-named) HttpConnection class now owns the
socket, and stays around between HTTP requests. It matches
SpdyConnection in lifecycle: it is tied to the socket.

The HTTP transport class is a dumb adapter that adapts the
protocol-specific decisions (chunked-encoding, content-length
stuff).

This should make it possible to make significant simplifications
to how connection recycling works: in a follow up change the
HttpConnection class will know when it can be recycled and take
that action automatically.
2014-02-14 16:23:39 -05:00
Jesse Wilson
efaf141801 Merge pull request #527 from square/jw/okcurl-bodies
Add body support to OkCurl. Introduce tests.
2014-02-14 15:27:10 -05:00
Jake Wharton
334584b834 Add body support to OkCurl. Introduce tests. 2014-02-14 09:02:08 -08:00
Jesse Wilson
3265dedc64 Merge pull request #529 from square/jw/java7
Make Java 7 build requirement more clear.
2014-02-14 08:01:27 -05:00
Jake Wharton
622e6a23cc Make Java 7 build requirement more clear. 2014-02-13 22:59:07 -08:00
Jesse Wilson
8720ab420f Merge pull request #526 from square/jwilson_0212_okbuffer_in_spdystream
Use OkBuffer in SpdyStream.
2014-02-12 17:20:53 -05:00
jwilson
c8507d05b4 Use OkBuffer in SpdyStream. 2014-02-12 17:20:18 -05:00
Adrian Cole
c40cb632ff Merge pull request #524 from square/jwilson_0211_buffered_source
BufferedSource.
2014-02-12 08:58:32 -08:00
jwilson
9c6a433725 BufferedSource.
The Source API is nice for source implementors: no annoying
skip method, no annoying available() method, just one API to
supply bytes to the caller.

But it isn't as nice of an API for source callers. It lacks
convenient APIs!

This bridges the gap. Calling code should use BufferedSource,
and implementing code should implement Source.
2014-02-11 22:21:31 -05:00
Jesse Wilson
545807ee8d Merge pull request #523 from square/jwilson_0211_okbuffer_in_http2_source
Use OkBuffer in http/2 source stream
2014-02-11 17:15:30 -05:00
jwilson
72d5faec97 Use OkBuffer in http/2 source stream 2014-02-11 17:09:44 -05:00
Jesse Wilson
a2cb34de5f Merge pull request #519 from square/jwilson_0209_okbuffer_in_spdy3_source
Use OkBuffer in spdy/3 source stream.
2014-02-11 15:54:55 -05:00
jwilson
d60d8e143a Use OkBuffer in spdy/3 source stream.
This isn't quite as simple as I had hoped. We still lack something
like DataInputStream/BufferedInputStream that combines a buffer with
a Source. That means there's a bunch of methods that must manually
refill the buffer before acting upon it.

I'm going to continue to migrate code, and will follow up with
changes to simplify this interaction.
2014-02-11 15:54:39 -05:00
Jake Wharton
12f7e649bc Merge pull request #522 from square/adrian.curl-X
Add -X to okcurl, permitting HEAD requests
2014-02-11 09:05:19 -08:00
Adrian Cole
6587a862cf Add -X to okcurl, permitting HEAD requests. 2014-02-11 09:04:18 -08:00
Jesse Wilson
f11832d5cf Merge pull request #518 from square/adrian.okclient-provided-sslcontext
OkHttp no longer uses default ssl context.
2014-02-09 10:54:43 -05:00
Adrian Cole
5d7fdbaf30 fix #184: OkHttp no longer uses default ssl context. 2014-02-09 09:30:37 -05:00
Jake Wharton
de6d505c03 Merge pull request #514 from square/jw/okcurl
Initial implementation of an OkHttp-backed curl clone.
2014-02-08 18:45:46 -05:00
Jake Wharton
acd45e124e Initial implementation of an OkHttp-backed curl clone. 2014-02-08 17:39:37 -05:00
Adrian Cole
1151c9853c Merge pull request #517 from square/jwilson_0208_buffer_fixes
Fix some OkBuffer bugs.
2014-02-08 10:20:34 -05:00
Adrian Cole
4c8ce7cad5 Merge pull request #516 from square/jwilson_0208_byte_at_to_get_byte
Rename byteAt to getByte.
2014-02-08 10:17:00 -05:00
jwilson
cd16580d2e Fix some OkBuffer bugs.
GzipSource exceptions used six hex digits instead of
8 to print ints.

readUtf8 always did an extra copy of the bytes being
read.

Moving bytes between buffers crashed when the destination
was empty and the source was a prefix.

InputStream reading returned values in -128..127 instead
of in 0..255.
2014-02-08 08:22:22 -05:00
jwilson
1f97e6b74c Rename byteAt to getByte.
Should we later support random access for other primitives
or random bulk access, I'd like the prefix to stay constant
(getByte, getInt, getLong, getBytes) vs. the suffix (byteAt,
intAt, longAt). Prefixing may work better for autocomplete
in IDEs, particularly since we already use a prefix for our
consuming reads (readByte, readInt, readLong).
2014-02-08 07:44:47 -05:00
Jesse Wilson
1b25214f59 Merge pull request #510 from square/jwilson_0203_gzip_beginnings
GzipSource beginnings.
2014-02-07 21:28:14 -05:00
jwilson
2c6f99dd56 GzipSource beginnings. 2014-02-07 20:15:29 -05:00
Adrian Cole
08b68ac717 Merge pull request #513 from adamsp/master
Fix for NPE when the OpenSSLSocketImpl returns null from getNpnSelectedProtocol
2014-02-06 01:36:25 +01:00
Adam Speakman
0ca4c82dd1 Fix for NPE when the OpenSSLSocketImpl returns null from getNpnSelectedProtocol. 2014-02-06 12:06:17 +13:00
Jesse Wilson
85fbb0abeb Merge pull request #512 from square/adriancole_02_05_findbugs
FindBugs sweep.
2014-02-05 12:49:22 -05:00
Adrian Cole and Jesse Wilson
fdee6f13a4 FindBugs sweep. 2014-02-05 17:18:30 +01:00
Adrian Cole
b149fec75e Merge pull request #509 from square/jwilson_0202_targetbacklog
Promote the target backlog to a parameter.
2014-02-02 22:54:46 -08:00
jwilson
4313b7af81 Promote the target backlog to a parameter. 2014-02-03 07:45:27 +01:00
Jesse Wilson
8be6646635 Merge pull request #508 from square/jwilson_0202_inflater_source
InflaterSource. Like InflaterInputStream.
2014-02-02 22:21:26 -08:00
jwilson
220c30ba20 InflaterSource. Like InflaterInputStream. 2014-02-03 01:24:01 -05:00
Adrian Cole
a12d6a6fcc Merge pull request #503 from normanmaurer/pooled
Use the pooled allocator for performance reasons
2014-02-01 16:59:41 -08:00
Adrian Cole
810a9175da Merge pull request #505 from adriancole/flush-control-frames-dont-flush-user-frames
Flush control frames; don't flush user frames.
2014-02-01 16:59:10 -08:00
Adrian Cole
b2293c2660 Merge pull request #504 from square/jwilson_0201_caliper
Use Caliper for benchmarking.
2014-02-01 12:53:18 -08:00
Adrian Cole
15099af480 Flush control frames; don't flush user frames. 2014-02-01 12:52:12 -08:00
jwilson
99841aecb4 Use Caliper for benchmarking. 2014-02-01 15:52:06 -05:00
Adrian Cole
f2ef66fd22 Merge pull request #502 from adriancole/mws-npn
Tell MockWebServer which NPN protocols to use.
2014-02-01 11:23:29 -08:00
Norman Maurer
18ef05d70d Use the pooled allocator for performance reasons 2014-02-01 20:09:25 +01:00
Adrian Cole
66b2582379 Add instructions to execute the benchmark with correct JVM parameters. 2014-02-01 11:01:27 -08:00