Domanda Problema HTTP Request

Stato
Discussione chiusa ad ulteriori risposte.

examinedcastle

Utente Electrum
5 Luglio 2014
158
36
14
122
Salve a tutti,
sto sviluppando un app per android e devo utilizzare le API messe a disposizione da "haveibeenpawned".
Ora le vie sono due: 1-Mi connetto e reperisco le informazioni via URL (cosa non dificile e con meno opzioni (https://haveibeenpwned.com/api/v2/breachedaccount/{account})) 2- Attraverso una richiesta HTTP (un pò più complesso ma ricevo più informazioni). Riguardo la prima via ho dei problemi in quanto non riesco a 'parsare' il testo che ricevo...cioè non so come è indentato e quindi non so come leggerlo invece utilizzando una richiesta http posso impostare delle proprietà nell'header ->
Codice:
//Create connection
    URL url =new URL(targetURL);
    connection =(HttpURLConnection)url.openConnection();
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type",
        "application/x-www-form-urlencoded");

    connection.setRequestProperty("Content-Length",
        Integer.toString(urlParameters.getBytes().length));
    connection.setRequestProperty("Content-Language","en-US"); 

    connection.setUseCaches(false);
    connection.setDoOutput(true);
Posso settando le giuste proprietà (Accept: application/vnd.haveibeenpwned.v2+json) ricevere un testo JSON che posso facilmente leggere da codice. Ora prima di andare a scrivere il codice volevo provare via URL se davvero restituiva del testo indentato in JSON poichè sapevo che aggiungendo le proprietà dell'header di una richiesta HTTP dopo un URL e un '?' il risultato era lo stesso. (se mi sbaglio ditemelo!!)
Così ho provato con questa richiesta (https://haveibeenpwned.com/api/breachedaccount/prova?accept: application/vnd.haveibeenpwned.v2+json) che funziona, però provando con altre opzioni non va (ad es. https://haveibeenpwned.com/api/breaches/Adobe?accept: application/vnd.haveibeenpwned.v2+json)
Dove sbaglio?
PS è più efficiente la richiesta URL o è meglio sbatterci un pò ma usare una richiesta http? (vorrei usare la seconda visto che è più stimolante anche a scopo didattico)
 
Stato
Discussione chiusa ad ulteriori risposte.