J'essaie d'obtenir les résultats d'une recherche google à partir d'une chaîne de la requête.Java: Utilisation incorrecte de GSon? (null pointeur exception)
public class Utils {
public static int googleHits(String query) throws IOException {
String googleAjax = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String json = stringOfUrl(googleAjax + query);
JsonObject hits = new Gson().fromJson(json, JsonObject.class);
return hits.get("estimatedResultCount").getAsInt();
}
public static String stringOfUrl(String addr) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
URL url = new URL(addr);
IOUtils.copy(url.openStream(), output);
return output.toString();
}
public static void main(String[] args) throws URISyntaxException, IOException {
System.out.println(googleHits("odp"));
}
}
L'exception suivante est levée:
Exception in thread "main" java.lang.NullPointerException
at odp.compling.Utils.googleHits(Utils.java:48)
at odp.compling.Utils.main(Utils.java:59)
Qu'est-ce que je fais mal? Dois-je définir un objet entier pour le retour JSON? Cela semble excessif, étant donné que tout ce que je veux faire, c'est obtenir une valeur.
Pour référence: le returned JSON structure.