改装时禁用 SPDY 连接
Disable SPDY connection on retrofit
我在 android 项目中使用改造,问题是当用户连接到代理或 VPN 时,从 HTTP REST API 查询的 IP 地址不会因连接重用而改变.
日志显示它正在使用 SPDY - OkHttp-Selected-Protocol: spdy/3.1
是否可以要求改造以使用 HTTP 1.1 或在指定路由上禁用连接 reuse/SPDY 或整个改造而不触及服务器端?
以前使用okhttp时,我在每次调用之前都使用下面的方法。 (这是一个非常糟糕的主意)
ConnectionPool pool = ConnectionPool.getDefault();
pool.evictAll();
要禁用 SPDY,您可以使用 setProtocols:
ArrayList<Protocol> protocolList = new ArrayList<Protocol>();
protocolList.add(Protocol.HTTP_1_1);
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setProtocols(protocolList);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API_URL)
.setClient(new OkClient(okHttpClient))
.build();
我在 android 项目中使用改造,问题是当用户连接到代理或 VPN 时,从 HTTP REST API 查询的 IP 地址不会因连接重用而改变.
日志显示它正在使用 SPDY - OkHttp-Selected-Protocol: spdy/3.1
是否可以要求改造以使用 HTTP 1.1 或在指定路由上禁用连接 reuse/SPDY 或整个改造而不触及服务器端?
以前使用okhttp时,我在每次调用之前都使用下面的方法。 (这是一个非常糟糕的主意)
ConnectionPool pool = ConnectionPool.getDefault();
pool.evictAll();
要禁用 SPDY,您可以使用 setProtocols:
ArrayList<Protocol> protocolList = new ArrayList<Protocol>();
protocolList.add(Protocol.HTTP_1_1);
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setProtocols(protocolList);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API_URL)
.setClient(new OkClient(okHttpClient))
.build();