JSON: "Unerwartetes Zeichen (<) auf position 0"

Hier ist die twitch.tv api-Anfrage zu bekommen-channel-Zusammenfassung: http://api.justin.tv/api/streams/summary.json?channel=mychannel. Wenn ich post es über den browser, bekomme ich die richtigen Ergebnisse. Aber programmgesteuert ich erhalte eine Ausnahme, während das Ergebnis der Analyse.

Ich den apache HttpClient zum senden von Anfragen und empfangen von Antworten. Und JSON-Einfach zu Parsen von JSON-Inhalten.

Dies ist, wie ich versuchen zu bekommen JSON aus der Reaktion gemäß api:

HttpClient httpClient = HttpClients.createDefault();
HttpGet getRequest = new HttpGet(new URL("http://api.justin.tv/api/streams/summary.json?channel=mychannel").toURI());
getRequest.addHeader("Accept", "application/json");
HttpResponse response = httpClient.execute(getRequest);

BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String output;
StringBuilder builder = new StringBuilder();
while((output = br.readLine()) != null) {
    builder.append(output);
}
br.close();

JSONParser parser = new JSONParser();
Object obj = parser.parse(builder.toString()); //Exception occurs here

Erwartete Ergebnis: {"average_bitrate":0,"viewers_count":"0","streams_count":0}, aber die Ausführung des Beispiel oben führt zu: Unexpected character (<) at position 0.

Wie man JSON Körper aus der Antwort? Browser zeigt das Ergebnis korrigieren.

Als erste debugging-Schritt, ich würde werfen aus dem Inhalt builder und sehen genau, was der server sendet Sie - "< an der position "0" sein könnte, eine XML-Antwort anstelle von JSON oder es könnte eine HTML-Fehler-Seite.
Ich muss aufmerksamer sein, ich habe einen Fehler in URL -> streamS statt stream 🙂

InformationsquelleAutor Dragon | 2013-11-19

Schreibe einen Kommentar