关于API

因为程序的有些数据我们是无法获取的,所以这些数据如果我们想用的话,必须从网上来找别人的接口来使用,比如像一些权威的数据,例:天气预报,快递的查询,淘宝网里面商品的一些信息等等。可能说这些内容我们自己是无法找到这些数据的,如果想用这些数据的话,必须要从它提供的一个接口里面来获取到数据,比如我们要获取天气预报的数据,这些数据我们要从网上,或者气象局提供的这个接口来获取。所以有些比较专业的数据我们是要从别的地方去取的。这种东西我们在网上把它称作接口。指的是网上提供的数据接口,从网上进行访问来获取到我们想要的数据。这个接口也叫做API。

我们需要给一个网站发一个请求过去,发一个请求过去之后呢还要传入相应的参数,比如说天气预报的,我要获取哪一个城市的天气预报,你必须要把城市当作一个参数发送过去,发送过去之后呢,这个网站经过处理之后把你想要的数据给你返回出来,然后你收到这个返回结果之后就可以去解析返回的数据,并且拿过来使用了。所以说流程就是这样的,一开始我们先发送请求,并且带参数过去然后它接收到参数之后执行完,把数据返回给我们,然后我们再解析数据就可以使用了。

接收到的数据一般来说接口的提供商有两种数据返回的类型。一种数据是JSON数据。另外一种数据是XML数据。也就是接口一般提供的两种返回数据的类型。

<?php
header("content-Type: text/html; charset=Utf-8");

//获取文件内容(除了可以获取本地的还可以获取远程的)
$data = file_get_contents("http://f.apiplus.net/ssq-10.json");

$arr = json_decode($data);

//这个$arr是个option对象。所以需要调用

foreach($arr->data as $v){
    echo $v->opencode."<br>";
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>

<?php
    header("Content-Type:text/html;charset=UTF-8");
    date_default_timezone_set("PRC");
    $showapi_appid = ‘45822‘;  //替换此值,在官网的"我的应用"中找到相关值
    $showapi_secret = ‘3a82573c9fe34500a167607558b95e51‘;  //替换此值,在官网的"我的应用"中找到相关值
    $paramArr = array(
         ‘showapi_appid‘=> $showapi_appid,
         ‘areaid‘=> "",
         ‘area‘=> "淄博",
         ‘needMoreDay‘=> "",
         ‘needIndex‘=> "",
         ‘needHourData‘=> "",
         ‘need3HourForcast‘=> "",
         ‘needAlarm‘=> ""
         //添加其他参数
    );

    //创建参数(包括签名的处理)
    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后的值作为参数,便于服务器的效验

         return $paraStr;
    }

    $param = createParam($paramArr,$showapi_secret);
    $url = ‘http://route.showapi.com/9-2?‘.$param; 

    $result = file_get_contents($url);

    $result = json_decode($result);

    var_dump($result);

    //解析的过程就看显示的结果就行 看见谁调用谁

?>   

</body>
</html>
时间: 2024-12-15 01:39:49

关于API的相关文章

百度地图API实现批量地址解析

1.前言 写这篇文章的原因是最近做一个GIS项目在网上爬取了一些数据,无奈只有地址的文字信息没有坐标信息,如何把信息显现在地图上呢?很纠结啊,查看了一下百度地图API惊奇的发现百度提供了地址解析的API,然后查看了他的Demo后豁然开朗,所以动手将自己的文字信息数据进行解析坐标信息.下面开始讲解. 2.方案 (1)自己数据库中的数据 (2)百度地图API Demo <!DOCTYPE html> <html> <head> <meta http-equiv=&qu

【API】高德地图API JS实现获取坐标和回显点标记

1.搜索+选择+获取经纬度和详细地址 2.回显数据并点标记 3.实现 第一步:引入资源文件 <!--引入高德地图JSAPI --><script src="//webapi.amap.com/maps?v=1.3&key=在官网申请一个key"></script><!--引入UI组件库(1.0版本) --><script src="//webapi.amap.com/ui/1.0/main.js">

【Windows10&nbsp;IoT开发系列】API&nbsp;移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor

beego应用做纯API后端如何使用jwt实现无状态权限验证

jwt是什么,可以百度下其它文章,我原来看到一个讲的详细的,现在找不到了.先简单介绍下我个人的理解,就是一个token,只不过通过加密解密的手段,能让这一串字符带有一些简单的信息.这样解密jwt后不用查数据库,最常用的例子,保存用户权限,再多层的权限,其实只用一个数字,转换成二进制,每一位代表一种权限.类似这样的使用,还有保存session的key,通过该值查session就能获取更丰富的资料,用来保存用户状态也是可以的. 下面介绍下我的一个golang项目中使用beego框架做纯API接口使用

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

通过beego快速创建一个Restful风格API项目及API文档自动化(转)

通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界面. 一.创建数据库及数据表(MySQL) #db--jeedev -- ---------------------------- -- Table structure for `app` -- ---------------------------- DROP TABLE IF EXISTS `a

Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案 (精髓)

前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件夹说起.问题大概有以下几点: 1.项目层的文件夹结构 2.解决MVC的Controller和Web API的Controller类名不能相同的问题 3.给MVC不同命名空间的Area的注册不同的路由 4.让Web API路由配置也支持命名空间参数 5.MVC及Web API添加身份验证及错误处理的过滤器

运行Chromium浏览器缺少google api密钥无法登录谷歌账号的解决办法

管理员身份运行CMD,然后依次输入以下三行内容: setx GOOGLE_API_KEY "AIzaSyAUoSnO_8k-3D4-fOp-CFopA_NQAkoVCLw"setx GOOGLE_DEFAULT_CLIENT_ID "6307505647-6knmr84r2pj2leudg3pp1j0h1licd6b9.apps.googleusercontent.com"setx GOOGLE_DEFAULT_CLIENT_SECRET "rbeWhXT

csharp:Google TTS API text to speech

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

利用 Django REST framework 编写 RESTful API

利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framework 真乃一大神器,可以轻易的甚至自动化的搞定很多事情,比如: 自动生成符合 RESTful 规范的 API 支持 OPTION.HEAD.POST.GET.PATCH.PUT.DELETE 根据 Content-Type 来动态的返回数据类型(如 text.json) 生成 browserable