我正在使用带有OkHttp 2.0.0的Retrofit 1.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和使用stock rom和Android 4.4.4的Moto G进行测试
答案 0 :(得分:0)
您使用okhttp2和低于5.0的Android设备(不支持SPDY)的原因,因此该设备从未尝试使用SPDY连接。默认情况下,它使用http1.1。
如果您的设备是> 5.0 okhttp会自动选择SPDY或HTTP / 2的最新协议。但你不能明确地设置/强制它。
注意 - Okhttp3不支持SPDY,因此不会尝试建立SPDY连接。