这篇文章主要演示:在android中如何向服务器发一个get请求,以及开子线程来更新ui,以及Handler发消息和处理消息的使用。

1.创建子线程请求数据:

final String strWebAddr = et_input.getText().toString();

new Thread(new Runnable() {    @Override    public void run() {        try{            URL url = new URL(strWebAddr);            //获取一个连接            HttpURLConnection connection = (HttpURLConnection)url.openConnection();            //设置GET请求            connection.setRequestMethod("GET");            //设置超时时间            connection.setConnectTimeout(5000);            connection.setReadTimeout(1000);            //获取服务器响应码            int ncode = connection.getResponseCode();            if( ncode == 200 ){                InputStream inputStream = connection.getInputStream();                //将流转换成String                String content = Utils.ReadStream(inputStream);                //发消息                Message msg = Message.obtain();                msg.obj = content;                handler.sendMessage(msg);            }        }catch(Exception e){           e.printStackTrace();        }    }});
这个ReadStream函数自己封装的:

public static String ReadStream(InputStream in) throws Exception{    int len = -1;    byte buffer[] = new byte[1024];    ByteArrayOutputStream baos = new ByteArrayOutputStream();    while ((len = in.read(buffer)) > 0 ){        baos.write(buffer,0,len);    }    //关闭流    in.close();    String content = new String(baos.toByteArray());    return content;}

Handler的创建和使用():

private Handler handler = new Handler(){    @Override    public void handleMessage(Message msg) {        String content = (String)msg.obj;        tv_show.setText(content);        super.handleMessage(msg);    }};


联网需要在清单文件中配置:



更多相关文章

  1. android 之 线程间的通信
  2. Android(手机)连接电脑本地服务器(flask)

随机推荐

  1. Android应用程序安装过程浅析
  2. Android(安卓)TextView 富文本 Spannable
  3. android opengl 画球 画圆
  4. Android TextUtils.isEmpty()的误解
  5. Android(安卓)gradle和gradle插件配置
  6. Android 文件及文件夹删除
  7. Android常见的专业名词及术语解释
  8. Android Widget小组件开发
  9. Android沉浸式(设置状态栏颜色)
  10. android手记之----service