2012-06-30 3 views
1

Я пытаюсь использовать API твиттера следующим образом:Получение сообщения с кодом ошибки в запросе API твиттера (Java)

String urlAdd = "https://api.twitter.com/1/following/ids.json?user_id=1000123"; 
URL url = new URL(urlAdd); 
URLConnection urlConnection = url.openConnection(); 
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 

вход getInputStream потока бросает IOException, это происходит потому, что я уже достиг свой запрос предел. Я хочу, чтобы иметь возможность distinghuish между ошибкой ограничения запроса и другими ошибками. Twitter возвращает сообщение об ошибке в json формате, но я не могу его прочитать из-за возникшего исключения.

Любые идеи о том, как я могу получить сообщение об ошибке?

+0

[JSON] (http://www.json.org/java/) есть реализация в Java хорошо. Предполагая, что вы можете получить JSON из IOException, вы можете проанализировать его с помощью анализатора JSON и прочитать сообщение об ошибке. С другой стороны, вы можете использовать один из [Java API] (https://dev.twitter.com/docs/twitter-libraries#java) для Twitter. –

+0

@skwee IOException возвращает java.io.IOException: сервер вернул код ответа HTTP: 400 для URL, это не совсем то, что я хочу. – Pashok

ответ

1

Я нашел способ сделать это:

String urlAdd = "https://api.twitter.com/1/following/ids.json?user_id=1000123"; 
URL url = new URL(urlAdd); 
URLConnection urlConnection = url.openConnection(); 
HttpURLConnection httpConn = (HttpURLConnection)urlConnection; 
InputStream is; 
if (httpConn.getResponseCode() >= 400) { 
    is = httpConn.getErrorStream(); 
} else { 
    is = httpConn.getInputStream(); 
} 
BufferedReader in = new BufferedReader(new InputStreamReader(is)); 
Смежные вопросы