2015-03-09 4 views
2

Когда я искал клиента Spdy, я нашел okhttp. Я только начал это попробовать. Мой вопрос, когда я бегу GetExample.java, как показано ниже,Поддержка OkHttp spdy? response.protocol()

import java.io.IOException; 
import com.squareup.okhttp.OkHttpClient; 
import com.squareup.okhttp.Request; 
import com.squareup.okhttp.Response; 


public class GetExample { 
    OkHttpClient client = new OkHttpClient(); 

    String run(String url) throws IOException { 
    Request request = new Request.Builder() 
     .url(url) 
     .build(); 

    Response response = client.newCall(request).execute(); 
    System.out.println(response.protocol()); 
    return response.body().string(); 
    } 

    public static void main(String[] args) throws IOException { 
    GetExample example = new GetExample(); 
    String response = example.run("https://www.google.com"); 
    System.out.println(response.length()); 
    } 
} 

response.protocol() всегда возвращает HTTP/1.1, почему он не возвращается SPDY? и есть ли способ заставить клиента использовать только spdy?

ответ

-1

Вы работаете на настольных Java или на Android? Для SPDY требуется библиотека под названием ALPN-boot на настольной Java. На Android вам понадобится версия v5.0 или выше, которая является самой ранней версией, которая содержит стабильную реализацию ALPN. Подробнее здесь:

https://github.com/square/okhttp/wiki/Building

+0

Спасибо, я работаю на рабочий стол Java, я мог бы получить SPDY протокол с использованием ALPN. Знаете ли вы, что в любом случае заставить клиента использовать только spdy? – kyle

+0

'OkHttpClient.setProtocols (Arrays.asList (Protocol.SPDY_3))' –

+0

... на самом деле я думаю, что нам нужен HTTP/1.1 в качестве резервной копии. Не уверен, что этот подход все еще действителен. –