通过GET方式获取到网络图片,有一个不知道为什么的错误

发送网络请求

首先任何网络操作,都不能在主线程中启动,只能在子线程里使用,这就考验使用Handler消息传送机制对主线程的ui进行操作
1.获取到网络操作限权

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

2.创建一个子线程进行网络操作


   tijiao.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           path = edit.getText().toString().trim();
           Toast.makeText(http.this,path,Toast.LENGTH_SHORT).show();

           final Message mess=new Message();

           mess.what=444;
           handler.sendMessage(mess);
           new Thread(new Runnable() {

               private InputStream inputStream;

               private int code;
               private HttpURLConnection conn;

               @Override
               public void run() {
                   try {
                       URL url=new URL(path);
                       conn = (HttpURLConnection) url.openConnection();//io
                       conn.setRequestMethod("GET");//io
                       conn.setConnectTimeout(5000);//5000的延迟
//                       int code= conn.getResponseCode();//io


                         code= conn.getResponseCode();//获取返回值

                       if(code==200)//200就是返回成功
                       {
                           inputStream = conn.getInputStream();
                           bitmap = BitmapFactory.decodeStream(inputStream);//此时返回的就是图片了
                           Message message22 = new Message();
                           message22.what=CHANE;//这是个常量哈
                           message22.obj=bitmap;
                           handler.sendMessage(message22);
                       }

                   } catch (IOException e) {
                       Message message2=new Message();
                       message2.what=11;
                       message2.obj=code;

                       handler.sendMessage(message2);
                       e.printStackTrace();
                   }
                   conn.disconnect();
               }
           }).start();

       }
   });

进行整体解析一下。
通过URL对象获取到HttpURLConnection对象,这样就可以进行网络发送了;设置方式为get,然后就取返回值200就是成功;通过input输入流,接收返回的数据,可以看出是一个图片,于是我们就用Bitmap接收,Message对象设置一下obj为bitmap,然后传出去,让Handler处理,就完事了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值