wp调用百度服务api
通过百度开放平台申请api成功后,百度会提供一个application key简称ak和一个security key简称sk。
看一下某个服务url的格式

1. url前缀
2. 服务类型
3. 参数
4. md5算法
下面是sn签名的方法,得到sn的值。
有个地方要注意的是签名前,先对每个参数值进行一次urlencode转换,拼接后再一次都整个字符串进行了urlencode转换。
Dictionary<string, string> parms = new Dictionary<string, string>();
parms.Add("location", "北京");
parms.Add("output", "json");
parms.Add("ak", "---ak---"); string queryStr = parms.ToQueryString();
string wholeStr = string.Format("{0}?{1}{2}", "/telematics/v3/weather", queryStr, "---sk---");
string templStr = Uri.EscapeDataString(wholeStr); string rst = templStr.CreateMD5();
public static string ToQueryString(this Dictionary<string, string> parms)
{
string rst = string.Empty;
if (parms != null && parms.Count > )
{
StringBuilder sb = new StringBuilder();
foreach (var item in parms)
{
sb.Append(string.Format("{0}={1}&", item.Key, Uri.EscapeDataString(item.Value)));
}
sb.Remove(sb.Length - , );
rst = sb.ToString();
}
return rst;
}
md5算法,最后返回十六进制字符串。
public static string CreateMD5(this string str)
{
string strAlgName = Windows.Security.Cryptography.Core.HashAlgorithmNames.Md5;
Windows.Security.Cryptography.Core.HashAlgorithmProvider objMacProv = Windows.Security.Cryptography.Core.HashAlgorithmProvider.OpenAlgorithm(strAlgName); Windows.Storage.Streams.IBuffer data = Windows.Security.Cryptography.CryptographicBuffer.ConvertStringToBinary(str, Windows.Security.Cryptography.BinaryStringEncoding.Utf8);
Windows.Storage.Streams.IBuffer hash = objMacProv.HashData(data); return Windows.Security.Cryptography.CryptographicBuffer.EncodeToHexString(hash);
}
最后可以通过浏览器验证一下结果。那么在wp可以通过System.Net.Http.HttpClient GetStringAsync得到返回的json数据。
wp调用百度服务api的更多相关文章
- Python 调用百度翻译API
由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...
- 调用百度地图API的总结
因为项目要用到百度地图,所以先摸索了一下,各种功能官方都有文档,点击可查看,文章的话我就直接写我用到的功能例子了,要用可以直接复制粘贴~ 一.主要涉及到的几个接口(先申请密钥): 1.技术一:坐标转换 ...
- 调用百度地图Api实现的查看地图功能的小插件
1. 功能 bMap.js 可根据地理位置调用出百度地图,采用弹出框形式 2.用法 var city = '青岛市'; var address = '香港中路'; bMap.init({ city : ...
- 【c#】Form调用百度地图api攻略及常见问题
首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...
- 原生js简单调用百度翻译API实现的翻译工具
先来个在线demo: js翻译工具 或者百度搜索js简单调用百度翻译API工具(不过有个小小的界面显示bug,我想细心的人应该会发现) 或者直接前往该网址:js翻译工具 或者前往我的github:gi ...
- HTML5调用百度地图API获取当前位置并直接导航目的地的方法
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8&quo ...
- HTML5 调用百度地图API地理定位
<!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head&g ...
- 跨平台移动开发_PhoneGap 使用Geolocation基于所在地理位置坐标调用百度地图API
使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...
- HTML5调用百度地图API进行地理定位实例
自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图AP ...
随机推荐
- Maven的依赖机制介绍
以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_manage_dependencies.html: ...
- PyQt5系列教程(一)Mac OS X下搭建Python3.5.1+PyQt5开发环境
软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.1 前言 Qt是一个开源的跨平台的GUI框架,为很多计算机语言提供了应用程序开发接口 ...
- MPI 并行奇偶交换排序 + 集合通信函数 Sendrecv() Sendvecv_replace()
▶ <并行程序设计导论>第三章的例子程序 ● 代码 #include <stdio.h> #include <mpi.h> #include <stdlib. ...
- Rhythmk 一步一步学 JAVA (18): Enum枚举学习
枚举定义: public enum SizeEnum { SMALL, BIG, BIGEST }; public enum SizeStringEnum { SMALL("小") ...
- Django+python实现网页数据的excel导出
一直都想做一个网页的excel导出功能,最近抽时间研究了下,使用urllib2与BeautifulSoup及xlwt模块实现 urllib2这个模块之前有用过,关于BeautifulSoup模块,可参 ...
- springmvc web.xml配置之 -- DispatcherServlet
springMVC servlet配置与启动 看一下springmvc的web.xml常见配置: <servlet> <!-- 配置DispatcherServlet --> ...
- Marshal.FreeHGlobal 方法 (IntPtr)
释放以前从进程的非托管内存中分配的内存. 命名空间: System.Runtime.InteropServices程序集: mscorlib(位于 mscorlib.dll) 下面的示例演示如何 ...
- Zend Studio使用综述
1.如何将zend studio 9的默认GBK编码设置为其它编码,例如UTF-8? 选 择window菜单->Preferences->General->Workspace,在界 ...
- 转)GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 以下是上述协议的简单介绍: BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以”为所欲为”, ...
- 5- 如何把MyEclipse中的web项目导入到Eclipse中运行
from: 如何把MyEclipse中的web项目导入到Eclipse中运行 2016年09月12日 20:57:51 dancheren 阅读数:35329 标签: eclipse 更多 个人分类: ...