//最重要的几步//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; } }
根据接口获取网页内容 并且更新到ListView
最新推荐文章于 2024-01-29 15:27:09 发布