Android 网络数据读取及解析
2011-09-20 17:01
447 查看
微博网络数据获取及解析的示例
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();
}
}
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();
}
}
相关文章推荐
- Android 之 网络访问服务器,解析JSON数据(返回无乱码)
- android如何解析网络上的json数据。
- Android网络请求与JSON解析和数据抓取小实例
- android解析网络json数据(1)
- Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
- 【Android网络开发の4】解析和生成JSON数据
- android HttpURLConnection 连接网络 读取返回数据
- Android使用HttpURLConnection请求网络返回JSON数据并解析
- Android中基于HTTP的通信技术(1)使用Http的Get方式读取网络数据
- android解析网络json数据(1)
- android之线程访问网络并解析数据
- Android 读取网络数据
- android基础(五)网络数据解析方法
- android studio插件快速开发之gson解析网络数据
- Android访问网络系列之--服务端返回XML或JSON格式数据,Android 进行解析并显示
- Android XML解析Pull方式———解析网络数据示例
- Android网络之数据解析----SAX方式解析XML数据
- 分布式缓存系统 Memcached 状态机之网络数据读取与解析
- Android网络数据Json格式解析
- android 解析网络xml数据,发送xml数据,解析json数据