根据接口获取网页内容 并且更新到ListView
来源:互联网 发布:做账软件免费 编辑:程序博客网 时间:2024/06/05 14:11
//最重要的几步//MainActivityimport android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.widget.ListView;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private List<News.DataBean> mList;
private NewsAdapter mAdapter;
private Handler mHandler = new Handler() {
@Override public void handleMessage(Message msg) {
String str = msg.obj.toString();
Gson gson = new Gson();
News news = gson.fromJson(str, News.class);
mList.addAll(news.getData());
mAdapter.notifyDataSetChanged();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mListView = (ListView) findViewById(R.id.listview);
mList = new ArrayList<>();
mAdapter = new NewsAdapter(this, mList);
mListView.setAdapter(mAdapter);
//get
new Thread() {
@Override
public void run() {
String result =
NetUtils.getUrlConnect("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
if (result != null) {
Message msg = Message.obtain();
msg.what = 0;
msg.obj = result;
mHandler.sendMessage(msg);
}
}
}.start();
}}
//NetUtilsimport android.util.Log;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.Map;public class NetUtils { /** * HttpURLConnection的post请求 * @param urlPath * @param map * @return */ public static String postUrlConnect(String urlPath, Map<String,Object> map){ StringBuffer sbRequest =new StringBuffer(); if(map!=null&&map.size()>0){ for (String key:map.keySet()){ sbRequest.append(key+"="+map.get(key)+"&"); } } String request = sbRequest.substring(0,sbRequest.length()-1); try { //创建URL URL url = new URL(urlPath); //由URL的openConnection方法得到一个HttpURLConnection(需要强转) HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); //设置post提交 httpURLConnection.setRequestMethod("POST"); //设置超时时间 httpURLConnection.setConnectTimeout(30000); httpURLConnection.setReadTimeout(30000); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); //把请求正文通过OutputStream发出去 OutputStream os =httpURLConnection.getOutputStream(); os.write(request.getBytes()); os.flush(); //判断响应码 200 代表成功 if(httpURLConnection.getResponseCode()==200){ //由HttpURLConnection拿到输入流 InputStream in=httpURLConnection.getInputStream(); StringBuffer sb=new StringBuffer(); //根据输入流做一些IO操作 byte [] buff =new byte[1024]; int len=-1; while((len=in.read(buff))!=-1){ sb.append(new String(buff,0,len,"utf-8")); } in.close(); os.close(); httpURLConnection.disconnect(); return sb.toString(); }else{ return null; } }catch (Exception e){ Log.e("post","code:"+e.getMessage()); return null; } } /** * HttpURLConnection的get请求 * @param urlPath * @return */ public static String getUrlConnect(String urlPath){ try { //创建URL URL url = new URL(urlPath); //由URL的openConnection方法得到一个HttpURLConnection(需要强转) HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); //设置连接 httpURLConnection.connect(); //判断响应码 200 代表成功 if(httpURLConnection.getResponseCode()==200){ //由HttpURLConnection拿到输入流 InputStream in=httpURLConnection.getInputStream(); StringBuffer sb=new StringBuffer(); //根据输入流做一些IO操作 byte [] buff =new byte[1024]; int len=-1; while((len=in.read(buff))!=-1){ sb.append(new String(buff,0,len,"utf-8")); } in.close(); httpURLConnection.disconnect(); return sb.toString(); }else{ return null; } } catch (Exception e) { e.printStackTrace(); } return null; }}
0 0
- 根据接口获取网页内容 并且更新到ListView
- file_get_contents获取网页内容并且入库案例
- python根据url获取网页内容
- 根据网页地址获取页面内容
- python3 获取网页内容保存到文件
- java获取网页内容保存到文件
- 根据url路径获取图片并显示到ListView中
- java 根据网址 获取内容 并输出到控制台
- android中listView监听中获取监听到的内容
- 【android】EditText监听,根据输入内容查询数据并动态更新ListView
- 获取emoji网页的内容保存到本地
- java用url获取网页内容并输出到控制台
- 获取网页内容
- C#获取网页内容
- c# 获取网页内容
- 获取网页内容
- java 获取网页内容
- C#获取网页内容
- CRC差错检校
- oc的基础知识收集
- dig常用命令
- React Native Android 8081端口占用问题
- 解决vs2013启动出现“cannot find one or more components .Please reinstall the application”
- 根据接口获取网页内容 并且更新到ListView
- sql应该了解的基础
- HTTP协议详解(真的很经典)
- java.util.ConcurrentModificationException
- NumPy doc(四)
- android百度地图设置logo,缩放按钮,指南针的位置
- VS2010编译Thrift过程
- Python学习笔记(三)—条件判断与循环
- mac下使用git上传项目到gitlab