关于http://guolin.tech/api/bing_pic失效

152 阅读1分钟

关于guolin.tech/api/bing_pi…

仅适用于第一行代码的第二版

项目coolweather有一个HttpUtil工具类

package com.coolweather.android.util;
import okhttp3.OkHttpClient;
import okhttp3.Request;

public class HttpUtil {
    public static void sendOkHttpRequest(String address,okhttp3.Callback callback){
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder().url(address).build();
        client.newCall(request).enqueue(callback);
    }

}

然后在WeatherActivity类中有一个loadBingPic()方法,通过这个方法获取图片

private void loadBingPic() {
    Log.d(TAG, "loadBingPic: ");
    //该网址获取JSON见下方图片
    String requestBingPic = "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1";
        /**
        *响应失败
        */
    HttpUtil.sendOkHttpRequest(requestBingPic, new Callback() {
        @Override
        public void onFailure(@NonNull Call call, @NonNull IOException e) {
            Log.d(TAG, "onFailure: loadBingPic");
            e.printStackTrace();
        }
        /**
        *响应成功
        */
        @Override
        public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
            String bingPic = response.body().string();
            try {
                //获取的是一个images集合
                JSONArray jsonArray = new JSONObject(bingPic).getJSONArray("images");
                //遍历找到url字符串
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    String url = jsonObject.getString("url");
                    bingPic = "http://cn.bing.com" + url;
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            /**
             * 将图片缓存(下方三行)
             */
            SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(WeatherActivity.this).edit();
            editor.putString("bing_pic", bingPic);
            editor.apply();
            String finalBingPic = bingPic;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    //关于Glide用法https://www.jianshu.com/p/4f457a124d67
                    Glide.with(WeatherActivity.this).load(finalBingPic).into(bingPicImg);
                }
            });
        }
    });
}

requestBingPic.png

requestBingPic位置得到的Json数据

这是coolWeather里面的src,因为阿里云上传无法超过200个文件,所以只能分享src文件夹 www.aliyundrive.com/s/yt2iJbw7B…

借鉴与

blog.csdn.net/weixin_5828… blog.csdn.net/chenxihanhu…