精华内容
下载资源
问答
  • 关于使用高德地图API Web端(JS API)

    千次阅读 2018-08-28 10:09:36
    关于使用高德地图API web端(JS API) 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QZPHP_L 本次集成了浏览器定位,拖拽选址,POI周边搜索三个功能 浏览器定位 只需要...

    关于使用高德地图API web端(JS API)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QZPHP_L/article/details/82143240


    本次集成了浏览器定位拖拽选址POI周边搜索三个功能

    这里写图片描述

    浏览器定位

    只需要使用官网浏览器定位demo中一小段js代码

     //精确定位
     map.plugin('AMap.Geolocation', function() {
        geolocation = new AMap.Geolocation({
            enableHighAccuracy: true,//是否使用高精度定位,默认:true
            timeout: 10000,          //超过10秒后停止定位,默认:无穷大
            buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
            zoomToAccuracy: true,      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
            buttonPosition:'RB'
         });
         map.addControl(geolocation);
         geolocation.getCurrentPosition();
         AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
         AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
      });

    拖拽选址

    此功能需要引入高德地图的UI,否则页面上一些按键不显示

    <script type="text/javascript" src='//webapi.amap.com/maps?v=1.4.9&key=key值&plugin=AMap.ToolBar'></script>
    <!-- UI组件库 1.0 -->
    <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
    <script type="text/javascript">
       AMapUI.loadUI(['misc/PositionPicker'], function(PositionPicker) {
           var map = new AMap.Map('container', {
                zoom: 16,
                scrollWheel: false,
                resizeEnable: true     
           })
           var positionPicker = new PositionPicker({
                mode: 'dragMap',
                map: map
           });
          //精确定位
        map.plugin('AMap.Geolocation', function() {
           geolocation = new AMap.Geolocation({
              enableHighAccuracy: true,//是否使用高精度定位,默认:true
              timeout: 10000,          //超过10秒后停止定位,默认:无穷大
              buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
              zoomToAccuracy: true,      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
              buttonPosition:'RB'
           });
           map.addControl(geolocation);
           geolocation.getCurrentPosition();
           AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
           AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
          });
          //精确定位结束
          //拖拽成功触发
          positionPicker.on('success', function(positionResult) {
                document.getElementById('address').innerHTML = positionResult.address;      
                AMap.service(["AMap.PlaceSearch"], function() {
            var placeSearch = new AMap.PlaceSearch({ //构造地点查询类
                pageSize: 5,
                pageIndex: 1,
                panel: "panel"
            }); 
            var cpoint = [ positionResult.position]; //中心点坐标
            placeSearch.searchNearBy('', cpoint, 200, function(status, result) {
            });
        });
            });
            positionPicker.on('fail', function(positionResult) {
                document.getElementById('address').innerHTML = '获取位置信息失败';
            });
            var onModeChange = function(e) {
                positionPicker.setMode(e.target.value)
            }
            positionPicker.start();
            map.panBy(0, 1);
            map.addControl(new AMap.ToolBar({
                liteStyle: true
            }))
        });
        </script>

    到此基本实现定位和微调功能,下面可以根据需要加入POI周边搜索

    POI周边搜索

    浏览器定位成功后,自动检索周边一定范围内的地点
    var cpoint = [ positionResult.position]; //中心点坐标
    这里的positionResult.position是根据上文中拖拽选址成功后的返回值得来的
    这段js需要加到拖拽选址positionPicker.on返回success的函数中·

         AMap.service(["AMap.PlaceSearch"], function() {
            var placeSearch = new AMap.PlaceSearch({ //构造地点查询类
                pageSize: 5,
                pageIndex: 1,
                panel: "panel"
            });
    
            var cpoint = [ positionResult.position]; //中心点坐标
            placeSearch.searchNearBy('', cpoint, 200, function(status, result) {
    
            });
        });

    以上实现了定位,拖拽选址,POI周边功能
    需要特别注意的是Key值必须是Web端(JS API)的key值,这个Key值可以在高德开发平台的控制台中添加Key,
    选择Web端(JS API)点击生成Key。使用android或其他生成的key值,可以实现定位,但是其他功能都不会实现。

    测试时需放入环境中, 使用localhost127.0.0.1访问

    这里写图片描述

    下面贴出html部分

    css可根据需要自行修改

    <!doctype html>
    <html lang="zh-CN">
    <head>
        <!-- 原始地址://webapi.amap.com/ui/1.0/ui/misc/PositionPicker/examples/positionPicker.html -->
        <base href="//webapi.amap.com/ui/1.0/ui/misc/PositionPicker/examples/" />
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
        <title>高德地图</title>
        <style>
        html,
        body {
            height: 100%;
            margin: 0;
            width: 100%;
            padding: 0;
            overflow: hidden;
            font-size: 13px;
        }
    
        .map {
            height: 310px;
            width: 100%;
    
        }
    
        #right {
            color: #444;
            background-color: #f8f8f8;
            min-width: 30px;
            line-height:30px;
            height: 30px;
            position: absolute; 
            top: 0;
            left: 0;
    
        }
    
        .title {
            width: 100%;
            background-color: #dadada
        }
    
        button {
            border: solid 1px;
            margin-left: 15px;
            background-color: #dadafa;
        }
    
        .c {
            font-weight: 600;
            padding-left: 15px;
            padding-top: 4px;
        }
    
        #lnglat,
        #address,
        #nearestJunction,
        #nearestRoad,
        #nearestPOI,
        .title {
            padding-left: 15px;
        }
        #panel {
               position: absolute; 
                background-color: white;
                height: 150px;
                overflow-y: auto;
                bottom: 0px;
                width: 100%;
                border-bottom: solid 1px silver;
            }
          .poi-img,.amap-zoomcontrol,.poi-tel,.poi-more{
            display:none;
          }
        </style>
    </head>
    <body>
        <div id="container" class="map" tabindex="0"></div>
        <div id='right'>
            <div>
                <div id='address'></div>
            </div>
        </div>
      <div id="panel"></div>
    </body>
    </html>
    展开全文
  • 该项目主要实现ajax/winform/webform三种方式通过WebAPI去调用WebService服务功能。简单易懂,WebService中主要包含的技术为APISoapHeader方法。初次接触这类技术的程序猿们可供参考。包括数据库脚本以及说明,很是...
  • 此附件为入门的简单视频教程,使用Asp.net WebApi+EF实现简易的列表。PS:适合零基础的道友们。
  • WebAPI源码

    2018-09-10 15:15:01
    本案例使用VS2013创建,案例包括API接口、模拟数据返回类、前端HTML请求页,本案例采用的是JQ的Ajax请求WebAPI并通过返回的数据绑定前端HTML页面。可以直接打开HtmlPage1.html页面观看最终效果。
  • C# .NET Web API 完整 Demo

    2020-11-04 16:00:07
    麻雀虽小,五脏俱全,这是一个可直接用于生产的脚手架 包含: DBHelper:数据库操作类,使用原生SQL,查询结果映射到Model,操作数据库非常方便,支持异步,提供了Emit版本的属性赋值比反射性能高,但暂未使用,支持...
  • C# WebAPI示例

    2018-05-16 18:36:39
    C# WebAPI示例 C# WebAPI示例 C# WebAPI示例C# WebAPI示例
  • C# WEB API

    2017-10-31 23:02:03
    C# WEB API 最近项目上要用到WEB API 接口,参考网上相关文档写了个简单的调用实例。供大家参考,希望对大家有帮助。
  • webapi寄宿于winform

    2020-02-25 16:53:57
    webapi寄宿于winform的实现,无须配置IIS,设置简单方便,.net4.5.2,可以扩展使用
  • WebAPI.ExportExcel 用于导出 Excel 的 Web API 使用WEB API导出excel。 还没完...
  • WebAPI编写案例

    2018-04-20 14:40:30
    WebAPI编写案例,代码全面详细,易用性强,对于初学者很有帮助
  • C# WebApi 接口传参详解

    2020-08-27 06:20:58
    主要介绍了C# WebApi 接口传参详解,本篇打算通过get、post、put、delete四种请求方式分别谈谈基础类型(包括int/string/datetime等)、实体、数组等类型的参数如何传递。感兴趣的小伙伴们可以参考一下
  • c# WebApi Winform托管

    2018-08-30 19:40:09
    这是一个WebApi在Winform项目的托管示例。 展示了子线程访问ui。
  • Web API跨域的方法有很多,这里给出最简单而又最实用的一种。希望可以帮到您。Web API跨域的方法有很多,这里给出最简单而又最实用的一种。希望可以帮到您。
  • Web APIWeb Service的区别

    千次阅读 2019-07-17 10:00:20
    首先,Web API是由Web Service演变而来,它们两者关系就是所有Web Service都是API,但并非所有API都是Web Service。其次,两者都有利于信息的传输,但Web APIWeb Service更具灵活性。最后,我们来看看它们之间的...

        首先,Web API是由Web Service演变而来,它们两者关系就是所有Web Service都是API,但并非所有API都是Web Service。其次,两者都有利于信息的传输,但Web API比Web Service更具灵活性。最后,我们来看看它们之间的具体差别,以及我们该如何去区分。

    什么是WEB Service?

          引用一句定义,即WebService是一种跨编程语言和跨操作系统平台的远程调用技术。主要依赖于XML-RPC和SOAP(简单对象访问协议)等标准,通过HTTP协议进行交互。(举例)

    什么是Web API?

          API是一组指定应用程序之间交互的规则或者说协议,通过API可以实现软件应用之间的相互通信。Web API可以使用任何类型的通信协议,数据交互格式为XML以及JSON。(举例)

    Web API和Web Service有哪些区别?

          Web API与Web Service都是实现RPC(远程过程调用)的通信手段。两者都支持基于XML格式的数据传输,但在实际生产过程中Web API的常见的数据类型格式主要还是JSON。

    将Web Service与Web API进行比较时,或者在两种RPC方式中做选择时,有一个关键参考值,即调用者和提供者对数据序列化和反序列化(打包和解包)的工作量。对JSON进行序列化和反序列化需要工作量通常比XML序列化和反序列化的少得多,而且JSON也比XML更加轻量,这就是使得JSON在解析速率方面更快,对带宽的要求更低。

          另外,Web API的客户端系统(调用者)和服务系统(提供者)彼此独立,调用者可以轻易的使用不同的语言(Java,Python,Ruby等)进行API的调用。Web Service通常仅在两个系统之间交互,几乎总是依赖于类似XML-RPC的接口来相互通信,并且不同的客户端下各浏览器对XML的解析方式不一致,需要重复编写很多代码。

          总结一下,Web Service更加适合为端到端的场景提供服务,Web API则更加适合为应用到应用的场景提供服务。这也可以解释为什么C/S(客户机/服务器)架构的程序还在沿用Web Service,而B/S(浏览器/服务器)架构几乎很少见到。当然,无论您想通过Web API实现什么,Web Service同样也能做到,毕竟在Web API还没有诞生以前Web Service就已经可以独挑大梁了。

    卅肆云(上海)科技有限公司 编辑

    展开全文
  • 回顾篇:淘宝API web开发一 授权登录

    万次阅读 2014-07-10 15:47:29
    今天重新看了之前做的API开发,

      重新回顾了之前做的淘宝API模块,记录一下思路。

    (1) 在开始开发之前,先要注册成为一个开发者,创建自己的应用。

           步骤在淘宝开发平台中http://open.taobao.com/doc/detail.htm?id=66中已有详细说明,在这里不再重复介绍。

           注意,在创建应用中,需要填写一个回调URL。在填写回调地址时,如果还在测试阶段的,可以填写一个本地的地址,例如 http://localhost/webERP/api/taobao/taobaoAuth.php,在本地测试通过后,要将其应用上线时,才将回调地址更改正式域名地址。

    (2)用户授权登录。

            在我们的应用与淘宝平台对接后,需要获取用户的隐私信息,为了保证数据的安全性和隐私性,我们的应用需要引导用户完成“使用淘宝账号登录并授权”的流程(http://open.taobao.com/doc/detail.htm?spm=0.0.0.0.ckBODm&id=118)。以此来获取访问令牌access_token,access_token是应用在调用API访问和修改用户数据时必须传入的参数。

            在引导使用应用的用户登录授权时,页面会跳转到所填写的回调地址,同时返回授权码code,我们可以利用这个返回的授权CODE和注册应用时分配的AppSecret,通过Http Post方式换取访问令牌access_Token,获取访问令牌的返回值以json格式返回。

    返回结果示例如下:

     {

      "w2_expires_in": 0,
      "taobao_user_id": "263685215",
      "taobao_user_nick": "%E5%95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B752",
      "w1_expires_in": 1800,
      "re_expires_in": 0,
      "r2_expires_in": 0,
      "expires_in": 86400,
      "token_type": "Bearer",
      "refresh_token": "6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215",
      "access_token": "6200819d9366af1383023a19907ZZf9048e4c14fd56333b263685215",
      "r1_expires_in": 1800
    }
    各个字段代表的含义如下:

    Key

    类型

    选项

    示例

    说明

    access_token

    string

    必选

    2YotnFZFEjr1zCsicMWpAA

    Access token

    token_type

    string

    必选

    Bearer

    Access token的类型目前只支持bearer

    expires_in

    number

    必选

    10(表示10秒后过期)

    Access token过期时间

    refresh_token

    string

    可选

    2YotnFZFEjr1zCsicMWpAA

    Refresh token

    re_expires_in

    number

    可选

    10(表示10秒后过期)

    Refresh token过期时间

    r1_expires_in

    number

    必选

    10(表示10秒后过期)

    r1级别API或字段的访问过期时间

    r2_expires_in

    number

    必选

    10(表示10秒后过期)

    r2级别API或字段的访问过期时间

    w1_expires_in

    number

    必选

    10(表示10秒后过期)

    w1级别API或字段的访问过期时间

    w2_expires_in

    number

    必选

    10(表示10秒后过期)

    w2级别API或字段的访问过期时间

    taobao_user_nick

    string

    必选

    淘宝测试test

    淘宝账号

    taobao_user_id

    string

    必选

    706388888

    淘宝帐号对应id

    sub_taobao_user_id

    string

    可选

    2343535

    淘宝子账号对应id

    sub_taobao_user_nick

    string

    可选

    淘宝测试test:123

    淘宝子账号


    access_token具有一定的有效期的,我们可以从中提取access_token字段,并将其保存在数据库中,在有效期内使用,而不用每次使用都进行授权。

    具体获取授权码code和访问令牌token的代码如下:

    webERP / api / taobao / common / taobaoClientHelper.php

    <?php
    /**
    * 这个文件包含 taobaoClientHelper 类
    */
    
    /**
    * taobaoClientHelper 引导使用应用的用户登录到指定的地址获取code
    * 根据code 和 AppSecret获取访问令牌access_token
    *
    */
    
    require_once 'taobaoClient.php';
    
    class taobaoClientHelper extends taobaoClient{
    
    	/**
    	* @var string 新建应用时填写的回调地址
    	*/
    	public $redirctUri;
    
    	/**
    	* @var string 获取授权码CODE的地址
    	*/
    	protected $authorizeUrl = 'https://oauth.taobao.com/authorize';	
    
    	/**
    	* @var string 获取访问令牌token的地址
    	*/
    	protected $tokenUrl = 'https://oauth.taobao.com/token';
    
    	/**
    	* 设置沙箱环境,如果是在本地测试,可以调用该方法,返回的数据是虚拟的
    	*/
    	public function sandboxEnv(){
    
    		$this->authorizeUrl = 'https://oauth.tbsandbox.com/authorize';
    
    		$this->tokenUrl = 'https://oauth.tbsandbox.com/token';
    
    		//访问API的地址
    		$this->gateWayUrl = 'http://gw.api.tbsandbox.com/router/rest';
    
    	}
    
    	/**
    	* 返回引导用户授权的http请求URL
    	* @param string $redirctUri 新建淘宝应用时填写的回调地址
    	*/
    	public function getAuthorizeUrl( $redirctUri = null ){
    
    		$redirctUri || $redirctUri = $this->redirctUri;
    		//根据淘宝要求的参数
    
    		//参数response_type 固定值为code
    		$param['response_type'] = 'code';
    
    		//参数client_id 创建应用时的Appkey
    		$param['client_id'] = $this->appKey;
    
    		//参数redirect_uri 应用的回调地址,必须与创建应用时所填回调页面url一致
    		$param['redirect_uri'] = $redirctUri;
    
    		//可选参数state ,自定义,颁发授权后会原封不动返回
    		$param['state'] = 'Nancy';
    		
    		//可选参数view,默认值为web
    		$param['view'] = 'web';
    
    		return $this->authorizeUrl . '?' . http_build_query($param);
    	}
    
    	/**
    	* 根据返回的授权码code,通过http post方式换取access token,以json的格式返回
    	* @param string $code 授权登录后返回的code码
    	* @param string $state 授权登录时原封不动返回的state
    	* @param string $redirctUri 回调地址
    	* @return 访问令牌access token 的json对象
    	*/
    	public function fetchAuthorizeToken($code, $state, $redirctUri = null){
    
    		$redirctUri || $redirctUri = $this->redirctUri;
    		//系统参数
    		$param = array(
    
    			'client_id' => $this->appKey; //创建应用时的Appkey
    			'client_secret' => $this->secretKey; //创建应用时的Appkey
    			'grant_type' => 'authorization_code'; //授权类型,默认为authorization_code
    			'code' => $code; //授权码code
    			'redirect_uri' => $redirctUri; //授权码code
    			'state' => $state; //可选参数state
    			'view' => 'web'; //可选参数,默认为web
    
    			);
    
    		//父类函数curl() 利用curl post 参数到tokenUrl,进行连接
    		$json = $this->curl($this->tokenUrl, $param);
    
    		//避免包含生涩的汉字而进行utf8的转码
    		$json = iconv('gbk', 'utf-8', $json);
    
    		//解析json格式
    		$json = json_decode($json);
    
    		//如果返回异常,会返回异常error 和 error_description
    		if( isset($json->error) && isset($json->error_description) ){
    			throw new Exception($json->error_description, intval($json->error));
    		}
    
    		return $json;
    	}
    }
    ?>
    我们编写一个小小的程序来测试如何获取token,在此之前,需要一些必要的配置信息 webERP / api / taobao / common / taobaoConfig.php

    <?php
    
    header('Content-Type:text/html;charset=UTF-8');
    
    ini_set('display_errors' , 'on'); //显示所有错误
    ini_set('display_startup_errors', 'on');
    error_reporting( E_ALL ^ E_NOTICE); //显示除去notic的所有错误信息
    
    include 'taobaoClientHelper.php';
    
    $taobao = new taobaoClientHelper();
    
    $taobao->appKey = "创建应用时的Appkey";
    $taobao->secretKey = "创建应用时的secretKey";
    
    //如果已经获取过访问令牌,并且令牌还在有效期内,可以不再需要授权
    $access_token = "访问令牌access_token";
    
    /**
    * 回调地址,在创建应用时,如果还处于测试阶段,回调地址可以写测试地址
    * 设置测试环境
    */
    if( $_SERVER['SERVER_NAME'] == 'localhost'){
    
    	$taobao->redirectUri = 'http://localhost/webERP/api/taobao/taobaoAuth.php';
    
    	$taobao->sandboxEnv();
    
    }else{
    
    	$taobao->redirectUri = 'http://正式域名/webERP/api/taobao/taobaoAuth.php';
    
    }
    
     ?>
    测试淘宝授权,该文件为回调地址文件 webERP/api/taobao/taobaoAuth.php
    <?php
    
    /**
    * 回调文件 taobaoAuth.php
    */
    include 'common/taobaoConfig.php';
    
    //用户登录授权时,会返回授权码CODE
    if(isset($_GET['code'])){
    
    	$state = isset($_GET['state'])? $_GET['state'] : '';
    
    	//获取access token
    	try{
    
    		$token = $taobao->fetchAcessToken( $_GET['code'] , $state );
    
    		if( isset($token->access_token) ){
    
    			//返回的access_token可以保存在数据库中,或者做自己需要的操作
    			echo '<pre>';
    			print_r($token);
    
    		}
    
    	}catch (Exception $e){
    
    		//异常,重新获取
    		header('Location: taobaoAuth.php');
    
    	}
    
    }else{
    
    	//引导用户到授权登录页面
    	$authUrl = $taobao->getAuthorizeUrl();
    
    	echo "<script>window.open('".$authUrl."');</script>";
    
    }
    ?>

    获得access_token后,我们就可以正式调用API了,在下一篇我们就会开始讨论淘宝API的调用。






    展开全文
  • 使用C# ASP.NET WebAPI构建API接口服务,实现前后端分离开发。同时,可使用工具自动生成接口文档,构建标准的WebApi的Rest后台数据接口服务接口。
  • 使用c++通过http协议调用web接口,可以调用基于http协议的所有web接口,支持linux和windows,同时有测试样例在文件中。
  • MVC实现的webApi接口

    2019-03-14 10:20:29
    1.使用.net Framework 4.5实现的webApi接口。 2. http get 请求,json格式返回 。 3.请求格式为:http://192.168.10.100/ParkApi/Index 4.返回格式为:{"code":1,"msg":"success"}
  • 主要为大家详细介绍了ASP.NET WebAPI连接数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • webApi 代码及测试工具

    2017-11-09 22:55:37
    webApi 代码实例及测试工具,非常好用。可用于调试get,post,put,delete相关协议及接口。超好用。
  • web-api测试工具

    2018-02-23 14:31:17
    用于web-api调试使用的工具。用户可以自由的修改http报文件头。软件需要安装 .net framework 4.0运行环境
  • WebApi.Token安全机制

    2018-11-06 14:00:08
    通过ajax分配相应的clientID和Secret及用户名和密码,后端利用owin进行处理并分配access_token,刷新token调用相应的ajax,根据已提供refresh_token进行刷新;测试页面click_me_please_iframe.html...开发工具是vs2015
  • WebApi系列-通过HttpClient来调用WebApi接口.doc
  • 金蝶云 自定义WebAPI接口 c#程序示例 接口的封装及调用(无引用组件示例(不引用金蝶的组件))
  • WebApi和访问WebApi两个项目

    千次下载 热门讨论 2014-12-05 15:08:48
    WebApi和访问WebApi两个项目,有源码,注释非常详细,希望对大家有帮助。 HttpWebRequest类访问webApi
  • C#winform调用webapi.rar

    2019-05-12 10:05:39
    C#winform调用webapi 上传json格式字符串,返回json字符串结果
  • 这是一个Web接口(webApi)寄宿到控制台的一个案例,脱离IIS管理器。没有IIS依然可以使用WebAPI接口开发。利用控制台可以输出客户端调用时自己想要输出的一些内容到控制台上。
  • C# WEBAPI 及winform调用

    2018-02-03 16:31:50
    webapi 项目平台,包含接口生成,及接口调用方法,项目代码清晰明了,非常值得初学者参考借鉴,更具体的开发步骤可以登入我的博客查看:http://www.cnblogs.com/gudaozi/p/8384734.html
  • WebApi安全性 使用TOKEN+签名验证
  • c# webapi 跨域调用例子

    2018-04-13 11:29:38
    2个项目,一个web html页面ajax调用,一个webapi项目提供接口。适合初学者。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 950,906
精华内容 380,362
关键字:

apiweb