Android 中使用HttpUrlConnection实现get请求服务器

这篇文章主要演示:在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);
    }
};


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

<uses-permission android:name="android.permission.INTERNET"></uses-permission>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值