2014-03-10 3 views
1

Я пытаюсь выполнить запрос FQL в приложении для Android с помощью AQuery. В первом запросе FQL я получил JSON просто нормально, но когда я прокручиваю свой список, чтобы получить больше сообщений (вызывая другой метод с использованием сопоставлений со временем), я получил сетевую ошибку e aquery, а JSON - null.Получение сетевого обмана при запросе fql с androidquery

Если я тестирую url в своем браузере, он работает правильно и возвращает данные json, но когда я запускаю с android, я получаю эту сетевую ошибку, а json - null.

Кто-нибудь может мне помочь?

Этот метод вызывается, когда я пролистайте:

public void callJsonNext(){ 

    progress_bottom.setVisibility(View.VISIBLE); 

    final AQuery aq = new AQuery(getActivity()); 

    String URL = URL_postagens_passadas + created_time_olds + "limit%2010&access_token=" + access_token; 

    Log.d("URL_CALL_JSON_NEXT", URL); 

    aq.ajax(URL, JSONObject.class, new AjaxCallback<JSONObject>() { 


     @Override 
     public void callback(String url, JSONObject json, AjaxStatus status) { 

      Log.d("STATUS_NEXT", status.toString()); 

       if(json != null){ 

        fillArrayWithOlderPosts(json); 

       }else{  
       Toast.makeText(aq.getContext(), "Error:" + status.getCode() + " in Json Next" + status.getError() + status.getMessage() + status.getSource(), Toast.LENGTH_LONG).show(); 
       Toast.makeText(aq.getContext(), "Error:" + status.getCode() + " in Json Next" + status.getError() + status.getMessage() + status.getSource(), Toast.LENGTH_LONG).show(); 
       } 
     } 
}); 

} 

ответ

0

Я просто использую нижеследующий код и отлично работает. :)

Facebook только разрешает запросы fql с created_time, если вы используете свой собственный метод запроса.

public void callJsonPrevious(){ 

     if ((!created_time_news.equals("") && created_time_news != null)){ 
     progress_top_top.setVisibility(View.VISIBLE); 

     String query = "select post_id, created_time, updated_time, attachment, share_count,like_info, message,likes from stream where source_id=351126731639471 and actor_id=351126731639471 and created_time >" + created_time_news; 
      Bundle params = new Bundle(); 
      params.putString("q", query); 
      params.putString("access_token", access_token); 
      Session session = Session.getActiveSession(); 
      Request request = new Request(session, 
       "/fql",       
       params,       
       HttpMethod.GET,     
       new Request.Callback(){   
        public void onCompleted(Response response) { 
         JSONObject json; 
         json = new JSONObject(); 
         json = response.getGraphObject().getInnerJSONObject(); 
         fillArrayWithNewPosts(json); 
        }     
      }); 
      Request.executeBatchAsync(request); 
     }else{ 

      getFirstPosts(); 

     } 
    } 
0

Попробуйте скопировать URL и вставить в browrser и посмотреть, Что ответ.

Или используйте String.class как тип для второго вызова и распечатайте ответ для отладки.

Скорее всего, что-то не так с URL-адресом, что приводит к тому, что результат является недопустимым json-типом.

+0

В браузере ссылка на url прекрасна. Я уже использую string.class –

+0

JSON всегда приходит null. И это только если я использую created_time ... –

+0

Если я запустил тот же URL-адрес в своем браузере, я получаю результаты правильно, но в Android я получаю эту ошибку, и только если я использую created_time. –