Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JAVA] URLConnection.getHeaderField -> problemi Content-Encoding

    ho realizzato un http client ad-hoc ..

    Ho dei problemi. Ho due tipi di metodi, un metodo

    getRequest(String url);
    e un metodo
    postRequest(String url, String post);



    ora ho dei problemi ... Mi sono accorto (attraverso uno sniffer) che in alcune request il server non ha tra gli header il "Content-Encoding" e quindi sperando di aver colto il problema..

    Exception in thread "main" java.lang.NullPointerException
    at HttpClient1.HttpWebPostRequest(HttpClient1.java:11 7)
    at Action.CASERMA(Action.java:180)
    at Test.main(Test.java:11)

    in pratica debug anche e spulciando tra i valori della connessione vedo che manca proprio il campo Content-Encoding.

    Il programma cmq mi va in crash in questa riga :

    if(connection.getHeaderField("Content-Encoding").equals("gzip"))
    {
    html = decodeGZIP(connection.getInputStream());
    return html;
    }

    come posso ovviare questo problema ??

    Qualcuno sa come posso controllare prima se esiste l'header content-encoding?


    Grazie..

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] URLConnection.getHeaderField -> problemi Content-Encoding

    Originariamente inviato da JavaFurbix
    codice:
    if(connection.getHeaderField("Content-Encoding").equals("gzip"))
    come posso ovviare questo problema ??
    Mettendo il valore del header in una variabile e poi facendo un banale test per diverso da null prima di fare un altro test (come quello sopra).

    Oppure ancora più semplicemente "girare" il verso dell'equals:

    if ("gzip".equals(connection.getHeaderField("Conte nt-Encoding"))) { ... }

    Che è perfettamente legale e corretto perché da specifiche equals() può ricevere come argomento un null e in tal caso deve restituire false.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    uhm ... Non ho provato ... Ma quindi per quel che mi scrivi è null.equals("gzip")

    Che provoca l'eccezione ??

    Io pensavo che l'eccezione veniva lanciata proprio perchè cercavo di accedere con connection.getHeaderField("Content-Encoding") ad un parametro che non c'è ... Quindi pensavo che lì si generava l'eccezione... Ora provo cmq

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da JavaFurbix
    Io pensavo che l'eccezione veniva lanciata proprio perchè cercavo di accedere con connection.getHeaderField("Content-Encoding") ad un parametro che non c'è ...
    Se getHeaderField() restituisce null vuol dire che non c'è quel header. Ma se è null mi sembra lampante che non puoi invocarci qualcosa su quel null (né equals() né altro metodo).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.