2014-06-17 1 views
0

URL을 하위 이미지에서 가져 와서 이미지를 보급하기 위해 유니버설 이미지 로더에로드하려고 시도하고 있습니다. 그러나 내 쿼리가 잘못되어 가고있는 것을 파악할 수 없습니다. 게다가, 나는 일식 logcat에 비해 안드로이드 스튜디오의 logcat에 익숙하지 않다. 그래서 나는 나의 디버깅 응답을 어디서 찾을 것인지 정확히 알지 못한다. 된 JSONObject, "레딧 실로 이동"합니다 (만 로그 캣에 첫 번째 줄, Log.d입니다 전송되는 끝 기록 된 정보는 시도의 catch 블록 내에서안드로이드에서 reddit URL JSON 데이터를 얻는 방법은 무엇입니까?

 public void queryReddit() 
    { 
     // Prepare your search string to be put in a URL 
     // It might have reserved characters or something 
//  String urlString = ""; 
//  try { 
//   urlString = URLEncoder.encode(searchString, "UTF-8"); 
//  } catch (UnsupportedEncodingException e) { 
// 
//   // if this fails for some reason, let the user know why 
//   e.printStackTrace(); 
//   Toast.makeText(this, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show(); 
//  } 

     // Create a client to perform networking 
     AsyncHttpClient client = new AsyncHttpClient(); 

     // 11. start progress bar 
     setProgressBarIndeterminateVisibility(true); 


     // Have the client get a JSONArray of data 
     // and define how to respond 
     client.get("http://www.reddit.com/r/pics/.json", 
       new JsonHttpResponseHandler() { 

        @Override 
        public void onSuccess(JSONObject jsonObject) { 
         // 11. stop progress bar 
         setProgressBarIndeterminateVisibility(false); 

         // Display a "Toast" message 
         // to announce your success 
         Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show(); 

//      // 8. For now, just log results 
//      Log.d("omg android", jsonObject.toString()); 


         try 
         { 
          Log.d("go reddit yay", jsonObject.toString()); 
          JSONObject testingData = (JSONObject) jsonObject.get("data"); 
          JSONArray testingChildren = (JSONArray) testingData.get("children"); 
          JSONObject testingLogData = (JSONObject) testingChildren.get(0); 
          JSONArray children = (JSONArray) jsonObject.get("children"); 
          JSONObject logData = (JSONObject) children.get(0); 
          Log.d("go reddit yay", logData.getString("url")); 
          Log.d("go reddit yay", testingLogData.getString("url")); 
          for(int i = 0; i < 10; i++) 
          { 
           JSONObject data = (JSONObject) children.get(i); 



           if(data.getString("url") != null) 
           { 
            System.out.println(data.getString("url")); 
           } 
           //if the url field exists and it's a picture that univ image loader understands then add it 
           if(data.getString("url") != null && data.getString("url").substring(data.getString("url").length()-3).equals("png") || 
             data.getString("url").substring(data.getString("url").length()-3).equals("jpg")) 
           { 
            imageUrls.add(data.getString("url")); 
            System.out.println(data.getString("url")); 
           } 

           //TODO I found this error: this requires android.permission.INTERACT_ACROSS_USERS_FULL 
          } 
          mPagerAdapter.notifyDataSetChanged(); 
         } catch (JSONException e) 
         { 
          e.printStackTrace(); 
         } 
         //TODO Might want to put all this data in a try catch block and do it right here. 
         // update the data in your custom method. 
         //updateData() 
        } 

        @Override 
        public void onFailure(int statusCode, Throwable throwable, JSONObject error) 
        { 
         // 11. stop progress bar 
         setProgressBarIndeterminateVisibility(false); 

         // Display a "Toast" message 
         // to announce the failure 
         Toast.makeText(getApplicationContext(), "Error: " + statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show(); 

         // Log error message 
         // to help solve any problems 
         Log.e("omg android", statusCode + " " + throwable.getMessage()); 
        } 
       }); 
    } 

:

다음은 쿼리 방법입니다. toString());

나에게 매우 이상한 다른 로그 호출의 응답을 찾을 수 없습니다. 무엇을해야 하는지를

06-17 06:35:29.324 17133-17133/.wallpaper D/absfr﹕ {"data":{"after":"t3_2823ou","children":[{"data":{"media_embed":{},"author_flair_css_class":null,"score":503,"created_utc":1402931529,"clicked":false,"visited":false,"id":"28a94k","author":"JamesBDW","title":"Any Bronson fans? [1920x1080]","over_18":false,"created":1402960329,"name":"t3_28a94k","selftext_html":null,"domain":"i.imgur.com","author_flair_text":null,"secure_media":null,"num_reports":null,"edited":false,"stickied":false,"link_flair_text":null,"link_flair_css_class":null,"saved":false,"secure_media_embed":{},"subreddit_id":"t5_2qmjl","distinguished":null,"gilded":0,"url":"https:\/\/i.imgur.com\/Hq1fcSm.jpg","banned_by":null,"subreddit":"wallpaper","is_self":false,"num_comments":31,"approved_by":null,"thumbnail":"http:\/\/a.thumbs.redditmedia.com\/Dh2iU7Q0rpFogkWt.jpg","permalink":"\/r\/wallpaper\/comments\/28a94k\/any_bronson_fans_1920x1080\/","hidden":false,"likes":null,"downs":188,"ups":691,"selftext":"","media":null},"kind":"t3"},{"data":{"media_embed":{},"author_flair_css_class":null,"score":8,"created_utc":1402989714,"clicked":false,"visited":false,"id":"28cnyn","author":"ZadocPaet","title":"Active Dunes on Mars (OS) [1024x768]","over_18":false,"created":1403018514,"name":"t3_28cnyn","selftext_html":null,"domain":"nasa.gov","author_flair_text":null,"secure_media":null,"num_reports":null,"edited":false,"stickied":false,"link_flair_text":null,"link_flair_css_class":null,"saved":false,"secure_media_embed":{},"subreddit_id":"t5_2qmjl","distinguished":null,"gilded":0,"url":"http:\/\/www.nasa.gov\/sites\/default\/files\/styles\/1024x768_autoletterbox\/public\/pia18244.jpg","banned_by":null,"subreddit":"wallpaper","is_self":false,"num_comments":1,"approved_by":null,"thumbnail":"http:\/\/a.thumbs.redditmedia.com\/dFTBquSWiMSjK0aZ.jpg","permalink":"\/r\/wallpaper\/comments\/28cnyn\/active_dunes_on_mars_os_1024x768\/","hidden":false,"likes":null,"downs":3,"ups":11,"selftext":"","media":null},"kind":"t3"},{"data":{"media_embed":{"content":"&lt;iframe class=\"embedly-embed\" src=\"\/\/cdn.embedly.com\/widgets\/media.html?src=http%3A%2F%2Fimgur.com%2Fa%2F0jeZf%2Fembed&amp;url=http%3A%2F%2Fimgur.com%2Fa%2F0jeZf&amp;image=http%3A%2F%2Fi.imgur.com%2F2PdUiuE.jpg&amp;key=2aa3c4d5f3de4f5b9120b660ad850dc9&amp;type=text%2Fhtml&amp;schema=imgur\" width=\"550\" height=\"550\" scrolling=\"no\" frameborder=\"0\" allowfullscreen&gt;&lt;\/iframe&gt;","scrolling":false,"height":550,"width":550},"author_flair_css_class":null,"score":1,"created_utc":1403004127,"clicked":false,"visited":false,"id":"28czid","author":"smessies","title":"I found a wallpaper album full of iconic design chairs. I tought there were some important ones missing so i started adding some myself. work in progress! [1920x1200]","over_18":false,"created":1403032927,"name":"t3_28czid","selftext_html":null,"domain":"imgur.com","author_flair_text":null,"secure_media":null,"num_reports":null,"edited":false,"stickied":false,"link_flair_text":null,"link_flair_css_class":null,"saved":false,"secure_media_embed":{},"subreddit_id":"t5_2qmjl","distinguished":null,"gilded":0,"url":"http:\/\/imgur.com\/a\/0jeZf","banned_by":null,"subreddit":"wallpaper","is_self":false,"num_comments":0,"approved_by":null,"thumbnail":"http:\/\/b.thumbs.redditmedia.com\/GYaN5fyJfY8fI8xE.jpg","permalink":"\/r\/wallpaper\/comments\/28czid\/i_found_a_wallpaper_album_full_of_iconic_design\/","hidden":false,"likes":null,"downs":0,"ups":1,"selftext":"","media":{"type":"imgur.com","oembed":{"thumbnail_height":1200,"author_url":"http:\/\/imgur.com\/user\/smessies","width":550,"type":"rich","version":"1.0","thumbnail_url":"http:\/\/i.imgur.com\/2PdUiuE.jpg","thumbnail_width":1920,"title":"imgur: the simple image sharer","height":550,"description":"Imgur is home to the web's most popular image content, curated in real time by a dedicated community through commenting, voting and sharing.","author_name":"smessies","html":"&lt;iframe class=\"embedly-embed\" src=\"\/\/cdn.embedly.com\/widgets\/media.html?src=http%3A%2F%2Fimgur.com%2Fa%2F0jeZf%2Fembed&amp;url=http%3A%2F%2Fimgur.com%2F 

아무 생각 :

여기에 첫 번째 로그 호출의 응답입니다.

하나의 마지막 디버깅 정보는 onSuccess 메서드에 대한 축약이 나타나지 만 쿼리에서 분명히 성공한 것입니다. 데이터를 해석하는 데 문제가 있습니다.

답변

0

첫 번째 Log.d("go reddit yay", ...); 호출에서 볼 수없는 예외가 발생한 후에 사용자가 설명하는 것처럼 보입니다. 귀하의 예외 처리 코드를 교체

시도 :이와

} catch (JSONException e) 
{ 
    e.printStackTrace(); 
} 

:

} catch (Throwable t) 
{ 
    Log.e("omg android", "Exception in onSuccess()", t); 
} 

및 예외가 기록되어 있는지 확인합니다.

관련 문제