1
0
mirror of https://github.com/square/okhttp.git synced 2026-01-27 04:22:07 +03:00
Jesse Wilson 99fb988657 Tests and code for various SPDY close scenarios.
Writing this change has led me to believe that the
concurrency here is just plain awful, and I need to
find a better solution than what I have. In particular,
there are too many threads:
 - the internal reader thread
 - application reader threads
 - application writer threads
And too many locks:
 - the SpdyWriter I/O write lock
 - the SpdyConnection internal state lock
 - each SpdyStream's internal state lock

What's currently very wrong is the internal reader thread
is updating state in the SpdyStream, and reading bytes from
the network into a particular stream. It is an error to hold
the SpdyStream's lock while reading, but we're doing it because
we need to hold the state on the buffer, position and limit.
We need to rethink this!

Chrome doesn't run into this problem because it can 'fire and
forget' events. We can't do that because SPDY writes need to
throw IOExceptions if the writes fail.
2012-10-02 18:51:46 -04:00
2012-07-23 10:02:28 -04:00

OkHttp

An HTTP+SPDY client for Android and Java applications.

Download

Downloadable .jars can be found on the GitHub download page.

You can also depend on the .jar through Maven:

<dependency>
    <groupId>com.squareup</groupId>
    <artifactId>okhttp</artifactId>
    <version>(insert latest version)</version>
</dependency>

Known Issues

The SPDY implementation is incomplete:

  • Settings frames are not honored. Flow control is not implemented.
  • It assumes a well-behaved peer. If the peer sends an invalid frame, OkHttp's SPDY client will not respond with the required RST frame.

OkHttp uses the platform's ProxySelector. Prior to Android 4.0, ProxySelector didn't honor the proxyHost and proxyPort system properties for HTTPS connections. Work around this by specifying the https.proxyHost and https.proxyPort system properties when using a proxy with HTTPS.

OkHttp's test suite creates an in-process HTTPS server. Prior to Android 2.3, SSL server sockets were broken, and so HTTPS tests will time out when run on such devices.

Contributing

If you would like to contribute code to OkHttp you can do so through GitHub by forking the repository and sending a pull request.

When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible. Please also make sure your code compiles by running mvn clean verify. Checkstyle failures during compilation indicate errors in your style and can be viewed in the checkstyle-result.xml file.

Before your code can be accepted into the project you must also sign the Individual Contributor License Agreement (CLA).

License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Description
No description provided
Readme 129 MiB
Languages
Kotlin 99.3%
Java 0.6%