HttpURLConnection的使用

    xiaoxiao2025-09-14  172

    使用thread,handler来联网读取json串

    package com.bwoie.test; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import com.bwoie.test.adapter.GroupAdapter; import com.bwoie.test.bean.GroupBean; import com.bwoie.test.bean.GroupData; import com.google.gson.Gson; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.Window; import android.widget.ListView; public class MainActivity extends Activity { private ListView lv; private ArrayList<GroupData> list; @SuppressLint("HandlerLeak") Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { GroupAdapter adapter=new GroupAdapter(list, getApplicationContext()); lv.setAdapter(adapter); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv_q); init("http://121.42.8.95:8090/AndroidServer/gp.json"); } private void init(final String uri) { new Thread(){ public void run() { try { //创建URL对象 URL url=new URL(uri); //通过URL打开地址 HttpURLConnection huc=(HttpURLConnection) url.openConnection(); //设置连接超时 huc.setConnectTimeout(5000); //设置读取超时 huc.setReadTimeout(5000); //判断 if(huc.getResponseCode()==200){ //获取输入流 InputStream is=huc.getInputStream(); byte[] buffer=new byte[1024]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); //将内容读取到ByteArrayOutputStream内存中 int len=-1; while((len=is.read(buffer))!=-1){ bos.write(buffer, 0, len); } //关闭流 is.close(); //将流内容转成字符串 String json=bos.toString("gbk"); // Gson gson=new Gson(); GroupBean bean=gson.fromJson(json, GroupBean.class); list=bean.data; handler.sendEmptyMessage(1); } } catch (Exception e) { e.printStackTrace(); } }; }.start(); } }

    2秒之后跳转

    new Handler().postDelayed(new Runnable() { public void run() { Intent intent=new Intent(OneActivity.this, MainActivity.class); startActivity(intent); finish(); } }, 2000);
    转载请注明原文地址: https://ju.6miu.com/read-1302658.html
    最新回复(0)