wp调用百度服务api
2024-08-30 19:57:38
通过百度开放平台申请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数据。
最新文章
- bzoj3110
- schtasks确实可以绕过UAC,简直不可思议啊~~
- Jquery Highcharts 选项配置 说明文档
- Samza在YARN上的启动过程 =》 之一
- (转)HTTP协议(3)
- Agg学习笔记
- nmon安装(转)
- Android 瘦身之道 ---- so文件
- php 多条件查询
- 一支烟的时间导致他错失女神,Python查看撤回消息,力挽狂澜!
- Docker的使用初探(二):Docker与.NET Core的结合
- nodejs之使用express框架连接mysql数据库,返回jsonapi数据
- php获取 POST请求的数据
- Swift 函数调用到底写不写参数名
- 【20181031T2】几串字符【数位DP思想+组合数】
- uva 10537 Toll! Revisited(优先队列优化dijstra及变形)
- 将各种格式的数据转换成XML
- ORACLE数据库导出导入数据
- 在Quartus使用TCL脚本文件配制管脚 《本人亲测》
- MySQL存储过程使用实例详解