2017-05-22 11 views
0

Android 7.0에서 실행되는 장치에서 다음 도메인 (http2 사용)으로 HTTP 요청을하려고합니다.Okhttp가 Android 7.0에서 http2를 선택하지 않았습니다.

는 다음과 내가 사용하는 코드가 될 때 :

Request request = new Request.Builder() 
       .url("https://http2.akamai.com/") 
       .build(); 

response = okHttpClient.newCall(request).execute(); 
statusCode = response.code(); 

내가 응답 오브젝트에 통지으로 okHttp에 의해 사용되는 프로토콜은 한 번에, HTTP 1.1

okhttp 클라이언트의 동작은 무작위입니다 나는 h2로 프로토콜을 볼 수 있었지만 그 요청을 반복, 내가 V3.5

을 okhttp 사용하고 HTTP 1.1

을 선택 유지

여기에 무엇을 놓칠 수 있습니까?

답변

0

Android에서 OkHttp에서 HTTP/1.1 만 사용하도록 설정했습니다.

/** 
* Creates an OkHttpClient suitable for creating HttpsURLConnection instances on 
* Android. 
*/ 
public static OkUrlFactory createHttpsOkUrlFactory(Proxy proxy) { 
    ... 
    // Only enable HTTP/1.1 (implies HTTP/1.0). Disable SPDY/HTTP/2.0. 
    okHttpClient.setProtocols(HTTP_1_1_ONLY); 

https://android.googlesource.com/platform/external/okhttp/+/master/android/main/java/com/squareup/okhttp/HttpsHandler.java#75