通过百度开放平台申请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的更多相关文章

  1. Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  2. 调用百度地图API的总结

    因为项目要用到百度地图,所以先摸索了一下,各种功能官方都有文档,点击可查看,文章的话我就直接写我用到的功能例子了,要用可以直接复制粘贴~ 一.主要涉及到的几个接口(先申请密钥): 1.技术一:坐标转换 ...

  3. 调用百度地图Api实现的查看地图功能的小插件

    1. 功能 bMap.js 可根据地理位置调用出百度地图,采用弹出框形式 2.用法 var city = '青岛市'; var address = '香港中路'; bMap.init({ city : ...

  4. 【c#】Form调用百度地图api攻略及常见问题

    首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...

  5. 原生js简单调用百度翻译API实现的翻译工具

    先来个在线demo: js翻译工具 或者百度搜索js简单调用百度翻译API工具(不过有个小小的界面显示bug,我想细心的人应该会发现) 或者直接前往该网址:js翻译工具 或者前往我的github:gi ...

  6. HTML5调用百度地图API获取当前位置并直接导航目的地的方法

    <!DOCTYPE html> <html lang="zh-cmn-Hans">     <meta charset="UTF-8&quo ...

  7. HTML5 调用百度地图API地理定位

    <!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head&g ...

  8. 跨平台移动开发_PhoneGap 使用Geolocation基于所在地理位置坐标调用百度地图API

    使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...

  9. HTML5调用百度地图API进行地理定位实例

    自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图AP ...

随机推荐

  1. 集群(heartbeat)搭建

    HA 即(high available cluster)高可用集群,又称双机热备,保证关键性业务的不间断提供服务. 如:两台机器A和B,正常情况A提供服务,B待命闲置:一但A宕机或服务宕掉,自动切换至 ...

  2. gmake与make的区别

    gnu make在linux下一般是叫make但是如果是在其他的unix系统下,因为有一个原生的makegnu make就改个名字叫gmake了.就这们简单 当port一个老的unix程序,如老的Su ...

  3. thinkPHP使用函数时字符串中不能含有管道符”|“,否则报错;

    如 {$data.name|str_repeat="|",###}报错!!!

  4. python学习-day 1

    Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...

  5. 串口通信,帧与帧之间的时间间隔问题?9600波特率,帧将各在20ms以上

  6. Mysql 索引优化 - 1

    单表  范围查询 后面的索引会失效 双表  左右连接建立索引互相使用 三表   用小结果集驱动大表结果, 先优化括号里面的SQL, 保证JOIN被驱动的表上ON字段有索引 索引失效(常见原因) 全职匹 ...

  7. MVC表单提交写法1

    初学MVC,感觉跟以前的aspx页面差别很大,我们就先来看看MVC的表单是怎么提交的吧. 现在我们用一个最简单的例子来看一看MVC是怎么提交表单的(这一个例子中,我们的关注点是如何提交表单,所以不涉及 ...

  8. AUC,KS,ROC

    要弄明白ks值和auc值的关系首先要弄懂roc曲线和ks曲线是怎么画出来的.其实从某个角度上来讲ROC曲线和KS曲线是一回事,只是横纵坐标的取法不同而已.拿逻辑回归举例,模型训练完成之后每个样本都会得 ...

  9. LMAX系统架构

    本文转载自:LMAX系统架构 ,(非常感谢作者yfx416分享好文) 很多架构师都面临这么一个问题:如何设计一个高吞吐量,低延时的系统?面对这个问题,各位都有自己的答案.但面对这个问题,大家似乎渐渐形 ...

  10. Go Methods and Interfaces

    [Go Methods and Interfaces] 1.Go does not have classes. However, you can define methods on struct ty ...