Android 网络数据读取及解析

微博网络数据获取及解析的示例

OAuth auth = new OAuth();
            String url 
= "http://api.t.sina.com.cn/statuses/friends_timeline.json";
            List
<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
            params.add(
new BasicNameValuePair("source",auth.consumerKey));
            HttpResponse response 
= auth.SignRequest(user.getId(), user.getTokenSecret(), url, params);
            
            
if(200 == response.getStatusLine().getStatusCode())
            {
                
try{
                    InputStream is 
= response.getEntity().getContent();
                    Reader reader 
= new BufferedReader(new InputStreamReader(is),4096);
                    StringBuilder buffer 
= new StringBuilder((int)response.getEntity().getContentLength());
                    
try{
                        
char[] tmp = new char[1024];
                        
int l;
                        
while((l=reader.read(tmp))!= -1)
                        {
                            buffer.append(tmp,
0,l);
                        }
                    }
finally
                    {
                        reader.close();                       
                    }
                    
                    String string 
= buffer.toString();
                    ((org.apache.http.HttpResponse) response).getEntity().consumeContent();
                    JSONArray data 
= new JSONArray(string);
                    
                    
for(int i=0; i<data.length();i++)
                    {
                        JSONObject d 
= data.getJSONObject(i);
                        
if(d!=null)
                        {
                            JSONObject u 
= d.getJSONObject("user");
                            
if(d.has("retweeted_status"))
                            {
                                JSONObject r 
= d.getJSONObject("retweeted_status");                                
                            }
                            
                            
//微博id
                            String id=d.getString("id");
                            String userId
=u.getString("id");
                            String userName
=u.getString("screen_name");
                            String userIcon
=u.getString("profile_image_url");
//                            Log.e("userIcon", userIcon);
                            String time=d.getString("created_at");
                            String text
=d.getString("text");
                            Boolean haveImg
=false;
                            
if(d.has("thumbnail_pic")){
                                haveImg
=true;
                                
//String thumbnail_pic=d.getString("thumbnail_pic");
                                
//Log.e("thumbnail_pic", thumbnail_pic);
                            }
                            
                            Date startDate
=new Date(time);
                            Date nowDate 
= Calendar.getInstance().getTime();
                            time
=new DateUtilsDef().twoDateDistance(startDate,nowDate);
                            
if(wbList==null){
                                wbList
=new ArrayList<WeiBoInfo>();
                            }
                            WeiBoInfo w
=new WeiBoInfo();
                            w.setId(id);
                            w.setUserId(userId);
                            w.setUserName(userName);
                            w.setTime(time 
+" 前");
                            w.setText(text);
                            
                            w.setHaveImage(haveImg);
                            w.setUserIcon(userIcon);
                            wbList.add(w);
                        }
                    }
                    
                    
                } 
catch (IOException e) {
                    
// TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
catch (JSONException e){
                    e.printStackTrace();
                }
                
catch (IllegalStateException e)
                {
                    e.printStackTrace();
                }
            }

 

posted on 2011-09-20 17:01  Alwaysyouare  阅读(4088)  评论(0编辑  收藏  举报

导航