Android 端天气预报APP的实现(二)阿里云天气预报API的获取

本文介绍了如何在Android应用中使用阿里云免费天气预报API。首先在阿里云云市场找到API,了解其请求方式和返回数据格式。接着,通过Java示例代码并解决相关依赖问题,成功导入HttpClient库,最终实现天气信息的获取。通过打印内容,可以验证API的正确调用。
摘要由CSDN通过智能技术生成

上一章基本实现了控件的滑动效果,那么其中的数据是怎么获取的呢~
我使用的是阿里云天气预报api,使用阿里云提供的API,需要遵循以下几步:
1. 百度搜索阿里云免费天气预报API,进入阿里云云市场。
这里写图片描述
2. 这个API是免费版的,只要不是商业开发,应该可以满足我们的需求。有了API,第一步应该看的是这个API的请求方式,返回的数据格式,以及最重要的是可以请求到多少数据,比如一定要有天气质量,未来几日天气等等。下面这张图就可以看到所有你想知道的。这也是阿里云自己提供的,请求方式为get,返回类型为json,左侧还可以选择你想获取哪些类型的天气信息。这里我选的是id或地名查询7天预报。
这里写图片描述
3. 再往下拉你会发现阿里云还把每种语言下具体的请求方式示例全都列举了出来,良心网站啊!!不过我在使用它提供的示例时出现了一些问题,不知道大家会不会遇到,那么我就来说说我具体是怎么获取的吧~
1)首先,将Java请求示例中的代码拷贝下来,这里我稍微做了一下更改,因此我在使用时出现了一些问题,更改之后的是完全可以正常获取的。

final String host = "http://ali-weather.showapi.com";
        final String path = "/area-to-weather";
        final String method = "GET";
        String appcode = "c402356e77824e7d8a23eebf6cf6d0b5";
        final Map<String, String> headers = new HashMap<>();
        final Map<String, String> querys = new HashMap<>();

        headers.put("Authorization", "APPCODE " + appcode);
        querys.put("area", "济南");
        querys.put("need3HourForcast", "0");
        querys.put("needAlarm", "0");
        querys.put("needHourData", "1");
        querys.put("needIndex", "1");
        querys.put("needMoreDay", "1");

        String content = "";

        HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
        BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "utf-8"));
        for (String s = reader.readLine(); s != null; s = reader.readLine()) {
                content += s;
            }

2)拷贝完这写代码,你会发现很多地方全都报红,哇是不是很兴奋。首先,先按照示例的要求去下载HttpUtils类,放到项目中。

/**
 * Created by zhaoxin on 17/9/15.
 */

public class HttpUtils {
   

    /**
     * get
     *
     * @param host
     * @param path
     * @param method
     * @param headers
     * @param querys
     * @return
     * @throws Exception
 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值