Question

Salut je dois évaluer si un serveur prend en charge la compression gzip.

Par conséquent, je veux mettre gzip comme Accept-Encoding dans ma demande et d'évaluer si la réponse du serveur containts « Content-Encoding: gzip ».

Cependant, je ne suis pas tout à fait clair sur la façon de le faire avec HttpURLConnection. Surtout quand pour interroger mon objet de connexion sur la réponse. Je fais actuellement:

HttpURLConnection con = (HttpURLConnection) feedurl.openConnection();
    con.setRequestProperty("Accept-Encoding", "gzip");
    System.out.println("Current Accept-Encoding: "+con.getRequestProperty("Accept-Encoding"));
    //check the response for the content-size
    float feedsize = con.getContentLength()/1024f;
    //the server uses transfer-encoding=chunked and does not specify
    //a content length
    if(con.getContentLength()==-1)
    {
        //count the content size manually
                    CountingInputStream counter = new CountingInputStream(con.getInputStream());
        while(counter.read()!=-1)
        {}
        feedsize=counter.getCount()/1024f;
    }
    con.disconnect();
Était-ce utile?

La solution

Jetez un oeil à cet article OReilly. Il illustre comment générer la demande, et comment interroger la réponse et ensuite créer la fonction de ce qui est de retour approprié flux (normal ou gzip).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top