和风天气API接口获取天气数据 android端

1. 在和风天气官网注册账号 , 然后申请一个key , 注意类型一定要是android sdk , 这个key只能在指定包名里面的SDK使用 , 用浏览器会返回错误 !!!

 

2. 下载和风天气的SDK https://dev.heweather.com/docs/sdk/android , 然后将SDK导入到你的项目工程里面

3. 使用方法 : 

       获得你的账号的username和key

 

   因为要联网 , 所以要在AndroidManifest里面声明联网权限 , 不然会出错!!!!!

package com.example.myweather;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

import com.google.gson.Gson;

import interfaces.heweather.com.interfacesmodule.bean.Code;
import interfaces.heweather.com.interfacesmodule.bean.Lang;
import interfaces.heweather.com.interfacesmodule.bean.Unit;
import interfaces.heweather.com.interfacesmodule.bean.weather.now.Now;
import interfaces.heweather.com.interfacesmodule.bean.weather.now.NowBase;
import interfaces.heweather.com.interfacesmodule.view.HeConfig;
import interfaces.heweather.com.interfacesmodule.view.HeWeather;


public class MainActivity extends AppCompatActivity {

    private final static String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWeatherFromHeAPI();
    }


    private void getWeatherFromHeAPI(){
        /*  在这里填入上面的username和key  */
        HeConfig.init("Your username", "Your key");
        HeConfig.switchToFreeServerNode();
        HeWeather.getWeatherNow(MainActivity.this, "CN101010100", Lang.CHINESE_SIMPLIFIED , Unit.METRIC , new HeWeather.OnResultWeatherNowBeanListener() {
            @Override
            public void onError(Throwable e) {
                Log.i(TAG, "Weather Now onError: ", e);
            }

            @Override
            public void onSuccess(Now dataObject) {
                /*  下面打印出来获得的json数据  */
                Log.i(TAG, " Weather Now onSuccess: " + new Gson().toJson(dataObject));
                //先判断返回的status是否正确,当status正确时获取数据,若status不正确,可查看status对应的Code值找到原因
                if ( Code.OK.getCode().equalsIgnoreCase(dataObject.getStatus()) ){
                    //此时返回数据
                    Log.d(TAG, "get data successful");
                 /* 此时now就是获得的数据类 , 这是和风SDK的自定义类  */
                    NowBase now = dataObject.getNow();  
                } else {
                    //在此查看返回数据失败的原因
                    String status = dataObject.getStatus();
                    Code code = Code.toEnum(status);
                    Log.d(TAG, "failed code: " + code);
                }
            }
        });
    }
    
}

  结果

好的,关于Android天气接口的使用,你可以按照以下步骤进行: 1. 注册和天气开发者账号,并创建应用,获取应用的Key值。 2. 在Android Studio中创建一个新项目,然后在项目的build.gradle文件中添加以下依赖库: ```gradle implementation 'com.squareup.okhttp3:okhttp:3.14.9' implementation 'com.google.code.gson:gson:2.8.6' ``` 3. 在代码中发送HTTP请求,获取天气数据。以下是示例代码: ```java OkHttpClient client = new OkHttpClient(); String apiKey = "your_api_key"; String city = "beijing"; String url = "https://free-api.heweather.net/s6/weather/now?key=" + apiKey + "&location=" + city; Request request = new Request.Builder().url(url).build(); try { Response response = client.newCall(request).execute(); String responseData = response.body().string(); // 解析JSON数据 Gson gson = new Gson(); WeatherResponse weatherResponse = gson.fromJson(responseData, WeatherResponse.class); if (weatherResponse != null && "ok".equals(weatherResponse.getHeWeather6().get(0).getStatus())) { // 获取天气数据 String temperature = weatherResponse.getHeWeather6().get(0).getNow().getTmp(); String weatherInfo = weatherResponse.getHeWeather6().get(0).getNow().getCond_txt(); } else { // 请求失败 } } catch (IOException e) { e.printStackTrace(); } ``` 4. 解析JSON数据获取天气信息。以上面的代码为例,可以使用Gson库对JSON数据进行解析,获取温度和天气信息。 希望这些步骤能够对你有所帮助。不过需要注意的是,和天气接口的使用需要符合相关的开发者协议和服务条款。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值