在Android上获取Twitter Feed - 超出设备的速率限制?

时间:2012-02-17 23:34:22

标签: android json twitter httpclient http-get

我正在尝试对Twitter提要进行简单的解析,我只是在twitter上请求用户的json提要并将其解析为对象。

问题是这在模拟器上工作得很好但是当部署在真实设备上时,我得到了400个错误的请求响应,这似乎是超过了403的速率限制,但这是第一个发送的请求,那么速率如何限制被超过?

      public ArrayList<Tweet> getTweets() {

      ArrayList<Tweet> tweets =
            new ArrayList<Tweet>();

      HttpClient client = new  DefaultHttpClient();
      HttpGet get = new HttpGet(twitterUrl);

      ResponseHandler<String> responseHandler =
            new BasicResponseHandler();

      String responseBody = null; 
      try {
        responseBody = client.execute(get, responseHandler);
      } catch(Exception ex) {
        ex.printStackTrace();
        timeOut = true;
      }

      JSONObject jsonObject = null;
    JSONArray arr = null;
    try {
        arr = new JSONArray(responseBody);
    } catch (JSONException e1) {
        e1.printStackTrace();
        timeOut = true;
    }

      for (int i = 0; i < arr.length(); i++) {
            try {
                jsonObject = arr.getJSONObject(i);
            } catch (JSONException e1) {
                e1.printStackTrace();
                timeOut = false;
            }
            Tweet tweet = null;
            try {
                tweet = new Tweet(
                      jsonObject.getJSONObject("user").getString("name"),
                      jsonObject.getString("text"),
                      jsonObject.getJSONObject("user").getString("profile_image_url"),
                      twitterHumanFriendlyDate(jsonObject.getString("created_at"))
                );
            } catch (JSONException e) {
                e.printStackTrace();
                timeOut = true;
            }
            tweets.add(tweet);
        }

      return tweets;
    }   

以下是解析Feed的示例:

Example Twitter JSON feed

我是否遗漏了必须要做的事情才能让它在设备上运行?我没有在Titter或其他任何地方注册过,我是否需要获得某种类似于Google地图密钥的Twiiter密钥?

编辑:它实际上是通过Wi-Fi工作但不是通过移动数据连接,他们是否可以防止移动连接的速率限制?

1 个答案:

答案 0 :(得分:0)

这是我的运营商的网络问题!遗憾!