Как получить ответ из твиттера в Android? - PullRequest
0 голосов
/ 16 марта 2012

Я создаю одно приложение, в котором хочу перечислить всех своих подписчиков.Для этого мне нужно передать твиттер API,

https://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=twitterapi

, и я работал над этим, я пробую ниже код для получения ответа от него,

HttpPost post = new HttpPost("https://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=twitterapi");
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();

String responseText = EntityUtils.toString(entity);
Log.i(TAG,"Response---"+responseText);

, и этот журнал печатается так,

Response---{"error":"\u0907\u0938 \u0935\u093f\u0927\u093f \u0915\u094b \u091c\u0940\u0908\u091f\u0940 \u0915\u0940 \u0906\u0935\u0936\u094d\u092f\u0915\u0924\u093e \u0939\u0948.","request":"\/1\/followers\/ids.json?cursor=-1&screen_name=twitterapi"}

Не могли бы вы показать мне правильный способ получить от него ответ, чтобы я мог получить массив Json?

Заранее спасибо.

1 Ответ

2 голосов
/ 16 марта 2012

Используйте следующий код ....

Прежде всего создайте основной класс,

public class FollowersData
{
        String url = "http://api.twitter.com/1/followers/ids.json?screen_name=twitterapi";
        private String[] s;

        public void FollowersIdDetails() 
        {
            InputStream source = retrieveStream(url);
            Gson gson = new Gson();
            Reader reader = new InputStreamReader(source);
            SearchResponse response = gson.fromJson(reader, SearchResponse.class);
            s = response.getTwitterUserId();
        }

        private InputStream retrieveStream(String url) 
        {
            DefaultHttpClient client = new DefaultHttpClient(); 
            HttpGet getRequest = new HttpGet(url);

            try 
            {
                   HttpResponse getResponse = client.execute(getRequest);
                   final int statusCode = getResponse.getStatusLine().getStatusCode();

                   if (statusCode != HttpStatus.SC_OK) 
                   { 
                          Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url); 
                          return null;
                   }
                   HttpEntity getResponseEntity = getResponse.getEntity();
                   return getResponseEntity.getContent();
            } 
            catch (IOException e) 
            {
                   getRequest.abort();
                   Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
            }
            return null;
         }
}

Чем создайте второй класс для разбора,

public class SearchResponse 
{
        @SerializedName("ids")
        private String[] twitterUserId;

        public String[] getTwitterUserId() 
        {
            return twitterUserId;
        }
        public void setTwitterUserId(String[] twitterUserId) 
        {
            this.twitterUserId = twitterUserId;
        }
}

Наконец, выполучит ответ (String [] s) в вашем основном классе ....:)

...