千家信息网

如何进行WebApiClient百度地图服务接口实践

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,如何进行WebApiClient百度地图服务接口实践,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 文章目的随着We
千家信息网最后更新 2026年11月03日如何进行WebApiClient百度地图服务接口实践

如何进行WebApiClient百度地图服务接口实践,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1. 文章目的

随着WebApiClient的不断完善,越来越多开发者选择WebApiClient替换原生的HttpClient,然而在应用到实际项目中多多少少会遇到一些项目结合上的疑问和困难,下面将以WebApiClient使用者的身份,在Asp.net core mvc项目中使用WebApiClient来请求百度地图服务接口,以展示WebApiClient的使用技巧。

2. 百度地图服务接口

  1. 静态图接口
    http://api.map.baidu.com/staticimage/v2?ak=你的密钥&mcode=666666¢er=116.403874,39.914888&width=300&height=200&zoom=11

  2. 坐标转换接口
    http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密钥

3. 接口分析

通过分析百度地图的接口,我们发现:

  • 所有接口都在api.map.baidu.com这个域名上;

  • ak参数是一个客户端身份标识的参数,所有请求接口都需要附加这个ak值;

  • 接口中需要的116.403874,39.914888这种参数值,实际是(经度,纬度),为两个值组成;

  • from和to是枚举数值类型;

在我们进行Coding的时候,应该重点考虑这些共性,以减少重复的工作内容。

4. 接口声明

4.1 公共域名

[HttpHost("http://api.map.baidu.com/")]
public interface IBdMapApi : IHttpApi{}

4.2 公共的AK参数

我们要实现一个接口级或方法级的ApiAction特性,用于给请求路径增加公共的ak参数:

然后把Ak特性追加到接口上:

[HttpHost("http://api.map.baidu.com/")][Ak("qde9uxuEhwMlngvTbWGo3BIQOKfqvjdc")]
public interface IBdMapApi : IHttpApi{}

4.3 静态图staticimage接口

参照接口文档,声明最初的StaticImage接口:

目前center参数是string类型,约束性非常弱,与接口要求的(经度,纬度)这种格式数据差异比较大。所以我们应该定一个继承自IApiParameterable的BdLocation类型,将传入的经度和纬度转换为这种文本格式:

修改后StaticImage接口修改为:

[HttpGet("staticimage/v2")]
ITask StaticImageAsync( BdLocation center, int width = 300, int height = 200, int zoom = 11, int mcode = 666666);

4.4 坐标转换Geoconv接口

依照文档,编写出最初的接口

[HttpGet("geoconv/v1/")]
ITask GeoconvAsync( string coords, int from = 1, int to = 5);

和StaticImage接口一样,我们还需要合理修改这个接口的参数约束,coords实际为BdLocation类型, from和to可以修改为枚举类型,返回值string修改为强类型的模型,修改后的接口为:

[HttpGet("geoconv/v1/")]ITask> GeoconvAsync(    BdLocation coords,    BdFrom from = BdFrom.wgs84,    BdTo to = BdTo.bd09ll);

4.5 完整的接口声明

5. 接口的依赖注入

WebApiClient的HttpApiClient创建的代理实例,适合使用单例模式,在支持依赖注入的项目开发中,应尽量使用依赖注入来完成HttpApiClient的创建和生命周期管理。

5.1 Asp.net core的依赖注入

在ConfigureServices方法里添加IBdMapApi的注入配置

如果项目里声明了很多接口,比如IBaiduApi、ITengxunApi等等,可以循环批量注入:

5.2 接收和使用IBdMapApi代理实例

6. 监视请求提交的内容

WebApiClient对Http请求进行的高度抽象,只有声明,没有实现,在没有熟悉WebApiClient的情况下,我们开发中可能需要在请求发送的内容进行监视,从而知道是否符合服务器的接口数据要求。在不使用第三方工具比如Fiddler等的情况下,我们可以为接口修饰一个自定义过滤器,在过滤器里实现访打印求消息内容的能力。

6.1 定义TraceFilter过滤器

6.2 接口关联TraceFilter

6.3 查看请求内容

开启程序调试,输出窗口里打印

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

接口 参数 内容 类型 项目 地图 服务 实际 纬度 经度 过滤器 开发 坐标 域名 实例 密钥 情况 数据 文档 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 工业互联网科技新基建 科技企业和互联网企业 互联网科技社 科技信息互联网 麻工互联网科技 北京互联网科技公司 互联网 视角下的科技创新 科技互联网创业计划书 中国互联网金融科技基金 岳阳华臻互联网科技有限公司 崇明区互联网教育科技售后服务 开一家科技互联网公司需要多少钱 四川慕妮娅互联网科技有限公司 富国互联网科技002692 互联网硬科技公司 广西科技产业互联网是什么 唐山双旺合互联网科技产业园 10位科技互联网大佬 黑龙江互联网科技公司 中关村互联网 科技集团 互联网品科技 互联网 科技公司 互联网时代科技改变生活 成都互联网科技公司工作好不好 互联网科技和法律行业 河南商务圈互联网科技有限公司 科技互联网企业在行动 株洲百竞科技的互联网营销顾问 武汉亿视互联网科技有限公司
0