ShowAPI,自营为主的数据交易市场
立即注册

PM2.5空气质量指数

提供者: 易源官方 免费使用

本接口每小时更新1次。空气质量指数提供实时空气质量情况,目前支持全国近400个城市;服务支持功能包括:查询空气质量、pm2.5、AQI指数,并给出空气质量级别和首要污染物等资料。

浏览量:17131

调用量:115715524

使用人数:53851

点赞:31

申请使用 查看演示
文档 授权签名(重要) 联系信息 价格一览表 接口演示
API说明(接口商自定义)
支持的城市列表
接入点列表
单个城市及其监测点PM数据
全国城市空气质量排行榜
数据结构列表
PM
SitePm
资源列表
·SDK及代码示例
规则中心
·名词解释
·常见问题

接入点说明

单个城市及其下属的监测点的PM数据,包括AQI,空气质量,指数类别,首要污染物,PM 2.5,细颗粒物,PM 10,可吸入颗粒物, 一氧化碳, 二氧化氮, 臭氧1小时平均, 臭氧8小时平均, 二氧化硫等信息。

请求URL地址

http://route.showapi.com/104-29
注意:接口支持https,更安全,但稍慢一些,你懂的。请根据自己的情况进行选择。

请求参数

HTTP协议,支持GET/POST方法。
非文件上传的POST时,enctype=application/x-www-form-urlencoded。
文件上传的POST时,enctype=multipart/form-data。
1.系统级参数(所有接入点都需要的参数):+点此展开
2.应用级参数(每个接入点有自己的参数):
参数名称 类型 默认值 示例值 必须 描述
city String 天津 要查询的城市

返回参数

以JSON格式返回结果。
1.系统级参数(所有接入点都会返回的参数):+点此展开
2.应用级参数(系统级输出参数showapi_res_body字段中的json数据结构):
名称 类型 示例值 描述
pm PM PM结构数据
- aqi String 空气质量指数(AQI),即air quality index,是定量描述空气质量状况的无纲量指数
- area String 城市名称
- co String 一氧化碳1小时平均,mg/m³
- ct String 发布时间
- no2 String 二氧化氮1小时平均,μg/m³
- o3 String 臭氧1小时平均,μg/m³
- o3_8h String 臭氧8小时滑动平均,μg/m³
- pm10 String 颗粒物(粒径小于等于10μm)1小时平均,μg/m³
- pm2_5 String 颗粒物(粒径小于等于2.5μm)1小时平均,μg/m³
- primary_pollutant String 首要污染物
- quality String 空气质量指数类别,有“优、良、轻度污染、中度污染、重度污染、严重污染”6类
- so2 String 二氧化硫一小时平均,μg/m³
- siteList SitePm[] 下属的监测站的PM数据。此列表数据只在【单个城市PM】接入点中存在。
-- aqi String 空气质量指数(AQI),即air quality index,是定量描述空气质量状况的无纲量指数
-- site_name String 监测点名称
-- co String 一氧化碳1小时平均,mg/m³
-- ct String 发布时间
-- no2 String 二氧化氮1小时平均,μg/m³
-- o3 String 臭氧1小时平均,μg/m³
-- o3_8h String 臭氧8小时滑动平均,μg/m³
-- pm10 String 颗粒物(粒径小于等于10μm)1小时平均,μg/m³
-- pm2_5 String 颗粒物(粒径小于等于2.5μm)1小时平均,μg/m³
-- primary_pollutant String 首要污染物
-- quality String 空气质量指数类别,有“优、良、轻度污染、中度污染、重度污染、严重污染”6类
-- so2 String 二氧化硫一小时平均,μg/m³
ret_code String 0 0为成功,其他失败
  • 请求实例
  • java_sdk
  • 纯java
  • curl
  • php
  • android
  • python
String res=new ShowApiRequest("http://route.showapi.com/104-29","my_appId","my_appSecret")
           .addTextPara("city","天津")
           .post();
System.out.println(res);

                  public static void main(String path[]) throws Exception {
									URL u=new URL("http://route.showapi.com/104-29?showapi_appid=myappid&city=&showapi_sign=mysecret");
									InputStream in=u.openStream();
									ByteArrayOutputStream out=new ByteArrayOutputStream();
									try {
										byte buf[]=new byte[1024];
										int read = 0;
										while ((read = in.read(buf)) > 0) {
											out.write(buf, 0, read);
										}
									}  finally {
										if (in != null) {
											in.close();
										}
									}
									byte b[]=out.toByteArray( );
									System.out.println(new String(b,"utf-8"));
							}
						 
						
						//字段值为中文、空格、特殊符号的地方需要做urlencode,编码为utf-8。用js的方式就是:
						//encodeURIComponent('中文')
						//比如"中文"转换后就是%25E4%25B8%25AD%25E6%2596%2587
            curl   "http://route.showapi.com/104-29?showapi_appid=123&showapi_timestamp=20151214132239&showapi_sign=use_my_sign&city=天津&"
						
						 //md5签名方式--非简单签名
               			<?php
							header("Content-Type:text/html;charset=UTF-8");
							date_default_timezone_set("PRC");
							$showapi_appid = 'xxxxxx';  //替换此值,在官网的"我的应用"中找到相关值
							$showapi_secret = 'xxxxxxxxx';  //替换此值,在官网的"我的应用"中找到相关值 
							$paramArr = array(
							     'showapi_appid'=> $showapi_appid,
								 'city'=> ""
							     //添加其他参数
							);
							
							//创建参数(包括签名的处理)
							function createParam ($paramArr,$showapi_secret) {
							     $paraStr = "";
							     $signStr = "";
							     ksort($paramArr);
							     foreach ($paramArr as $key => $val) {
							         if ($key != '' && $val != '') {
							             $signStr .= $key.$val;
							             $paraStr .= $key.'='.urlencode($val).'&';
							         }
							     }
							     $signStr .= $showapi_secret;//排好序的参数加上secret,进行md5
							     $sign = strtolower(md5($signStr));
							     $paraStr .= 'showapi_sign='.$sign;//将md5后的值作为参数,便于服务器的效验
							     echo "排好序的参数:".$signStr."
\r\n"; return $paraStr; } $param = createParam($paramArr,$showapi_secret); $url = 'http://route.showapi.com/104-29?'.$param; echo "请求的url:".$url."
\r\n"; $result = file_get_contents($url); echo "返回的json数据:
\r\n"; print $result.'
\r\n'; $result = json_decode($result); echo "
\r\n取出showapi_res_code的值:
\r\n"; print_r($result->showapi_res_code); echo "
\r\n"; ?>
						//以下代码为纯java实现,并未依赖第三方框架,具体传入参数请参看接口描述详情页.
						protected Handler mHandler =  new Handler();
						protected void onCreate(Bundle savedInstanceState) {
								super.onCreate(savedInstanceState);
								setContentView(R.layout.activity_main);
								final TextView txt = (TextView) this.findViewById(R.id.textView1);
								Button myBtn = (Button) this.findViewById(R.id.button1);
								myBtn.setOnClickListener(new OnClickListener() {
									public void onClick(View v) {
										new Thread(){
											//在新线程中发送网络请求
											public void run() {
												String appid="xxx";//要替换成自己的
												String secret="xxxxxxx";//要替换成自己的
												final String res=new ShowApiRequest( "http://route.showapi.com/104-29", appid, secret)
                    .addTextPara("city", "")
            .post();
												
												System.out.println(res);
												//把返回内容通过handler对象更新到界面
												mHandler.post(new Thread(){
													public void run() {
														txt.setText(res+"  "+new Date());
													}
												});
											}
										}.start();
										
										
									}
								});
						}

						
#python3.5
from urllib import    request, parse
import json

print('send data....')
showapi_appid="xxxxxxxxxx"  #替换此值
showapi_sign="xxxxxxxxxx"   #替换此值
url="http://route.showapi.com/104-29"
send_data = parse.urlencode([
    ('showapi_appid', showapi_appid)
    ,('showapi_sign', showapi_sign)
                    ,('city', "")
    
  ])

req = request.Request(url)
try:
       response = request.urlopen(req, data=send_data.encode('utf-8'), timeout = 10) # 10秒超时反馈
except Exception as e:
    print(e)
result = response.read().decode('utf-8')
result_json = json.loads(result)
print ('result_json data is:', result_json)

						

返回实例

{
  "showapi_res_code": 0,
  "showapi_res_error": "",
  "showapi_res_body": {
    "ret_code": 0,
    "pm": {
     	"num": "1",  //排名
        "so2": "2",  //
        "o3": "96",  //臭氧1小时平均,μg/m3
        "area_code": "hangzhou",  //
        "pm2_5": "91",  //颗粒物(粒径小于等于2.5μm)1小时平均,μg/m3
        "ct": "2017-05-06 16:19:26.556",  //发布时间
        "primary_pollutant": "颗粒物(PM10)",  //首要污染物
        "co": "0.28",  //一氧化碳1小时平均,mg/m3
        "area": "杭州",  //城市名称
        "no2": "8",  //二氧化氮1小时平均,μg/m3
        "aqi": "500",  //空气质量指数(AQI),即air quality index,是定量描述空气质量状况的无纲量指数
        "quality": "严重污染",  //空气质量指数类别,有“优、良、轻度污染、中度污染、重度污染、严重污染”6类
        "pm10": "841",  //颗粒物(粒径小于等于10μm)1小时平均,μg/m3
        "o3_8h": "89"  //臭氧8小时滑动平均,μg/m3
    },
    "siteList": [
      {
        "site_name": "万寿西宫",
        "co": "0.2",
        "so2": "2",
        "o3": "112",
        "no2": "8",
        "aqi": "59",
        "quality": "良",
        "pm10": "54",
        "pm2_5": "42",
        "o3_8h": "89",
        "primary_pollutant": "细颗粒物(PM2.5)",
        "ct": "2017-05-06 16:19:40.889"
      },
      {
        "site_name": "定陵",
        "co": "0.2",
        "so2": "2",
        "o3": "116",
        "no2": "2",
        "aqi": "52",
        "quality": "良",
        "pm10": "_",
        "pm2_5": "36",
        "o3_8h": "109",
        "primary_pollutant": "细颗粒物(PM2.5)",
        "ct": "2017-05-06 16:19:40.889"
      } 
    ]
  }
}




请求地址 请求参数 返回参数 请求示例 返回示例
接入点列表
单个城市及其监测点PM数据
全国城市空气质量排行榜
  • 免费套餐(单个城市及其监测点PM数据)

免费套餐_无认证版

0时间:1年

  • 不限调用次数
  • 1次/秒调用频率
  •  
  •  
点此订购

免费套餐_基本认证版

0时间:1年

  • 不限调用次数
  • 2次/秒调用频率
  • 邮箱认证 要求
  • 手机认证 要求
点此订购

免费套餐_实名认证版

0时间:1年

  • 不限调用次数
  • 3次/秒调用频率
  • 邮箱认证 要求
  • 手机认证 要求
  • 实名认证 要求
点此订购