利用点睛数据免费接口让APP轻松获取天气信息

开发App时,是否遇到需要为用户提供实时天气信息或未来天气信息的烦恼。

但是自行采集难度虽说不大,但过程繁琐,耗时长,且经常需要维护,还要解决IP被黑的困局。。。

唉。。。

特别提示:技术大牛请跳过以下内容

 当然,已经有人帮我们想好了,各大api接口平台应运而生,琳琅满目啊,但前提是,都不是免费的。。。。。。

再唉。。。

那有是否需求一个免费的天气接口或者说免费的API接口平台呢?

 

点睛数据就有类似的接口

且是免费的,免费的,免费的,重要的事情说三遍!!!!

 

网址就自行百度吧,点睛数据的接口调用相当适合基础薄弱的小白用户,下面是简单的示例,但是有真实需要的请自行前往官网查看文档了解详细信息

话不多说,开撸:

先来了解一下,请求参数

参数名参数说明可选值备注必填项
citycode城市代码速度快,准确率高,推荐等级为1级(建议优先使用该方式获取数据)
cityname_ch城市名称(中文)速度偏慢,准确率高,推荐等级为3级
cityname_py城市名称(拼音)速度偏慢,准确率偏低,推荐等级为4级(不推荐)
ipIP地址速度快,准确率较高,推荐等级为2级(使用此方法较为简单,但准确率稍欠佳,请斟酌使用)
jwd经纬度,输入格式如: 经度|纬度速度快,准确率较高,推荐等级为2级(使用此方法较为简单,但准确率稍欠佳,请斟酌使用)
cn_to_unicode汉字Unicode转码1
0
本设置是对服务器返回数据时是否对中文汉字进行unicode转码,为增强兼容性,默认以unicode转码
token密匙您的token密匙是 
datatype返回的数据类型json
xml
json/xml 可选,默认为json格式

如表格,token参数 是必须的

token参数是需要用户注册账号并认证手机号码后才能申请的,这个是每个用户独一的,需要严格保管啊。

如表格所见,其他参数可以都不需要,意思是用户啥都不提供,服务器会根据ip地址返回ip地址相应地区的天气信息,真心nice

 当然,如果你想根据经纬度来获取天气也可以,数据更准确

还有城市代码/城市名/城市拼音等获取方式,随心所欲就可以了

如果觉得麻烦,不想自己写代码,官网还给出了示例代码,轻松复制,修改个token就可以调试了,真easy。。。

对于已经拥有高人一等的发际线的我来说,妈妈再也不用担心我撸代码继续掉头发了

 

以下官网上还给出来多个测试代码

java代码请求示例

/**
 *点睛数据:新实时天气,使用JAVA方式调用接口简单示例
 * @author 点睛数据
 *          djapi.cn
 */
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class apidemo {
	public static final String citycode = "101161010";
	public static final String cityname_ch = "";
	public static final String cityname_py = "";
	public static final String ip = "";
	public static final String jwd = "";
	public static final String cn_to_unicode = "1";
	public static final String token = "用户个人token";
	public static final String datatype = "json";
	
    public static void main(String[] args) {

        try {
            URL url = new URL("http://api.djapi.cn/ipaddr/get");
            HttpURLConnection connect = (HttpURLConnection)url.openConnection();
            connect.addRequestProperty("encoding","UTF-8");
            connect.setDoInput(true);
            connect.setDoOutput(true);
            connect.setRequestMethod("GET");//POST or GET
            OutputStream output = connect.getOutputStream();
            OutputStreamWriter outputstreamreader = new OutputStreamWriter(output);
            BufferedWriter writer = new BufferedWriter(outputstreamreader);

            // 发送 请求
            String params="&citycode="+citycode+"&cityname_ch="+cityname_ch+"&cityname_py="+cityname_py+"&ip="+ip+"&jwd="+jwd+"&cn_to_unicode="+cn_to_unicode+"&token="+token+"datatype="+datatype;
            writer.write(params);
            // 强制清空缓冲区 输出数据
            writer.flush();

            // 设置好 输入流 -- 因为 只有发送数据之后才会有接收数据
            InputStream inputstream = connect.getInputStream();
            InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
            BufferedReader bufferreader = new BufferedReader(inputstreamreader);

            // 上述步骤将数据封装好之后 即可将数据读取出来了
            String outputstring;
            StringBuilder strbuilder = new StringBuilder();
            while((outputstring=bufferreader.readLine())!= null){
                    strbuilder.append(outputstring);
            }

            writer.close();
            bufferreader.close();
            output.close();
            outputstreamreader.close();
            inputstream.close();
            inputstreamreader.close();

            System.out.println(strbuilder);

        } catch (MalformedURLException e) {
                e.printStackTrace();
        } catch (IOException e) {
                e.printStackTrace();
        }
    }
}

PHP代码示例

<?php
	header('Content-Type:text/html;charset=utf-8');
	date_default_timezone_set('PRC');
	class apidemo
	{
		public $apipath='api.djapi.cn/rtweather2/get';
		public $params;
		public function __construct($params){
			$this->params=http_build_query($params);
			return $this->get();
		}

		public function get($post_array)
		{
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, $this->apipath);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $this->params);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			$result = curl_exec($ch);
			curl_close($ch);
			return $result;
		}
	}

	$post_array = array(
	    'citycode' => '101161010'
	    'cityname_ch' => ''
	    'cityname_py' => ''
	    'ip' => ''
	    'jwd' => ''
	    'cn_to_unicode' => '1'
	    'token' => '9f2d610a0d************5940a173e6'
	    'datatype' => 'json'
	    
	);
	$result=new apidemo($post_array);
	echo '数据返回如下:'.PHP_EOL;
	var_dump($result);

 

返回结果示例,json格式

{
    ApiName: "rtweather2",
    ErrorCode: 0,
    ErrorReason: "no",
    Result: {
        Warning: {
            IsWarning: 0,
            Time: "",
            Province: "",
            City: "",
            District: "",
            Level: {
                Code: "",
                Cn: "",
                En: ""
            },
            WarningWeather: {
                Code: null,
                Weather: null
            },
            WarningDetail: "",
            MsgFrom: ""
        },
        Rain: {
            Last24h: {
                Code: 0,
                En: "0mm",
                Cn: "0毫米"
            },
            Now: {
                Code: 0,
                En: "mm",
                Cn: "毫米"
            }
        },
        Time: {
            Date: {
                Cn: "2019年12月21日",
                Code: "20191221"
            },
            Week: {
                Code: "6",
                Cn: "星期六"
            }
        },
        UpdateTime: "23:26",
        City: {
            En: "shenzhen",
            Code: "101280601",
            Cn: "广东-深圳"
        },
        LifeTips: {
            uv_level: "最弱",
            uv_tips: "辐射弱,涂擦SPF8-12防晒护肤品。",
            jf_level: "五颗星",
            jf_tips: "天气较舒适,减肥正当时。",
            xt_level: "较易波动",
            xt_tips: "血糖较易波动,注意监测。",
            cy_level: "较舒适",
            cy_tips: "建议穿薄外套或牛仔裤等服装。",
            xc_level: "适宜",
            xc_tips: "天气较好,适合擦洗汽车。",
            wr_level: "较差",
            wr_tips: "气象条件较不利于空气污染物扩散。。"
        },
        Temp: {
            Sheshi: {
                Code: 17,
                String: "17℃"
            },
            Huashi: {
                Code: 62,
                String: "62℉"
            }
        },
        Wet: "63%",
        Weather: {
            String: "阴",
            Code: "w2"
        },
        QiYa: {
            Code: 1013,
            StringCn: "1013百帕",
            StringEn: "1013hPa"
        },
        Wind: {
            Direction: "北风",
            DirectionCode: "N",
            LevelCn: "3级",
            Level: 3,
            SpeedHtml: "<12km/h",
            SpeedCn: "小于12公里每小时",
            SpeedEn: "<12km/h"
        },
        Aqi: {
            Aqi: "56",
            AqiLevelCode: 1,
            AqiLevel: "良"
        }
    }
}

好了,希望以上内容对有相关需求的用户有所帮助。

有需要的用户请自行百度点睛数据去薅羊毛吧。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值