我在OkHttp 2.0.0中使用Retroef1.6.1。到目前为止,我们还没有在服务器上启用SPDY,但是昨晚我们启用了它。http://spdycheck.org/说我们的服务器上启用了SPDY,但是当我尝试进行API调用时,日志显示使用了HTTP/1.1:
D/Retrofit(29455): OkHttp-Selected-Protocol: http/1.1我是否必须用OkHttp启用SPDY,还是应该自动检测?
我就是这样安排的:
OkHttpClient okHttp = new OkHttpClient();
okHttp.setConnectTimeout(15 * 1000, TimeUnit.MILLISECONDS);
okHttp.setReadTimeout(15 * 1000, TimeUnit.MILLISECONDS);
okHttp.setWriteTimeout(15 * 1000, TimeUnit.MILLISECONDS);
OkClient okClient = new OkClient(okHttp);
mRestAdapter = new RestAdapter.Builder()
.setEndpoint(BASE_URL)
.setClient(okClient)
.setConverter(new GsonConverter(mGson))
.setErrorHandler(errorHandler)
.setLogLevel(LogLevel.FULL)
.build();我正在测试Nexus 4运行的股票Android 4.4.4和Moto G上的股票rom和Android 4.4.4
发布于 2018-04-03 06:27:29
您使用okhttp2和安卓设备的原因低于5.0 (不支持SPDY),因此该设备从未尝试使用SPDY连接。默认情况下,它使用的是http1.1。
如果设备大于5.0okhttp将自动选择最新协议SPDY或HTTP/2,但不能显式设置/强制。
Note - Okhttp3不支持SPDY,因此不会尝试建立SPDY连接。
https://stackoverflow.com/questions/25869554
复制相似问题