• 安卓学习----使用okHttp(get方式)---下载图片


    一首先下载Jar包

    https://github.com/square/okhttp

    如果使用android studio只需要加入依赖

    compile 'com.squareup.okhttp3:okhttp:3.2.0'

    二--下载一张图片并显示

    使用的是hanlder的方式

    package com.liunan.okhttpdemo2;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.Toast;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    import okhttp3.ResponseBody;
    
    public class MainActivity extends AppCompatActivity {
    
    
        private static final int ERROR = 1;
        private static final int SUCCESS = 2 ;
        private String url = "http://192.168.1.102:8080/img/a.jpg";
        private ImageView mIv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
    
        }
    
        private Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what){
                    case SUCCESS:
                        mIv.setImageBitmap((Bitmap) msg.obj);
                        break;
    
                    case ERROR:
    
                        Toast.makeText(MainActivity.this, "请求超时", Toast.LENGTH_SHORT).show();
    
                        break;
                }
            }
        };
    
        /**
         * 初始化 组件
         */
        private void initView() {
    
            mIv = (ImageView) findViewById(R.id.main_iv);
        }
    
    
        /**
         * 点击获取图片
         */
        public void getPic(View v){
    
    
            new Thread(){
                @Override
                public void run() {
                    //获取okHttp对象get请求,
    
                    try {
                        OkHttpClient client = new OkHttpClient();
    
                        //获取请求对象
                        Request request = new Request.Builder().url(url).build();
    
                        //获取响应体
    
                        ResponseBody body = client.newCall(request).execute().body();
    
                        //获取流
                        InputStream in = body.byteStream();
                        //转化为bitmap
                        Bitmap bitmap = BitmapFactory.decodeStream(in);
    
                        //使用Hanlder发送消息
                        Message msg = Message.obtain();
    
                        msg.what = SUCCESS;
                        msg.obj = bitmap;
    
                        handler.sendMessage(msg);
    
    
    
    
                    } catch (IOException e) {
                        e.printStackTrace();
                        //失败
                        Message msg = Message.obtain();
                        msg.what = ERROR;
    
                        handler.sendMessage(msg);
                    }
    
    
                }
            }.start();
        }
    
    
    }

    也可以把网络请求写为一个工具类,

    package com.liunan.okhttpdemo2;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    /**
     * Created by 刘楠 on 2016-03-27.
     */
    public class OkHttpUtils {
    
        OkHttpClient client = new OkHttpClient();
    
        /**
         * 获取流
         * @param url  请求地址
         * @return  输入流
         */
        public InputStream getInpuStream(String url) throws IOException {
            //设置 请求
            Request request = new Request.Builder()
                    .url(url).build();
    
    
            //获取行响应
    
            InputStream in = client.newCall(request).execute().body().byteStream();
    
            return in;
    
    
        }
    
        /**
         * 返回字符串
         * @param url
         * @return   返回字符串
         * @throws IOException
         */
      public String getString(String url) throws IOException {
            //设置 请求
            Request request = new Request.Builder()
                    .url(url).build();
    
    
            //获取行响应
    
          Response response = client.newCall(request).execute();
    
          return response.body().string();
    
    
        }
    
    }

    get方式

  • 相关阅读:
    Android上的水果忍者刀锋效果(JAVA实现)
    界址坐标转换器说明
    C# MVC4 执行特性之后不再执行Action
    广西公需科目自动学习
    mvc4 利用filters特性来 实现自己的权限验证 之二
    mvc4 利用filters特性来 实现自己的权限验证 之一
    利用hao123天气插件的地址选择提供的api进行跨域调用实现地址的省 地级市 县 联动选择。
    javascript 判断变量 是否为空null,undefined, 空数组,空对象(空Object),字符串是否为空或全由空白字符组成,数字是否为0,布尔是否为false。
    git使用
    ios微信公众号分享回调事件
  • 原文地址:https://www.cnblogs.com/liunanjava/p/5325740.html
Copyright © 2020-2023  润新知