毕设(一)C#的百度api调用
2017-03-14 10:40
543 查看
这个学期就要毕业了,选了一个无人机地面站软件设计的题目,这几天也开始着手做,
首先做了一个百度地图的调用,这里因为是上位机的开发,所有就不介绍Javascript的
调用方法,核心是用到一个类HttpClient,通过相关设置就能请求到相关内容,代码如下:
这里再做一个有IP获取详细系统的api:
提示:这里处理数据用到Newtonsoft.Json.dll类库,引入到项目中就可以。
好像还用github的开源项目json.net,也是处理json数据的,应该用NuGet
包管理工具下载一下就可以用了,一般在它的官网也有教程的,由于本人没看过,
所以就不多说了。
首先做了一个百度地图的调用,这里因为是上位机的开发,所有就不介绍Javascript的
调用方法,核心是用到一个类HttpClient,通过相关设置就能请求到相关内容,代码如下:
//创建一个HttpClient的对象 HttpClient client = new HttpClient(); //请求的地址 其中()里面是你的ak值 这是百度开发者中心控制台中创建应用百度给的 后面还用相关参数是对返回图片的相关设置 string MapUri = "http://api.map.baidu.com/staticimage/v2?ak=()i&mcode=666666¢er=116.403874,39.914888&width=300&height=200&zoom=11 "; //设置响应头 大概意思是告诉服务端是PC端的浏览器 client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"); //创建响应对象 HttpResponseMessage message1 = client.GetAsync(new Uri(MapUri)).Result; //以流的方式接受响应信息 System.IO.Stream stream = message1.Content.ReadAsStreamAsync().Result;//http获取 返回流 //从流创建图片 Bitmap bitMap = new Bitmap(stream);
这里再做一个有IP获取详细系统的api:
//请求地址 ak同上 这里有个callback回调函数 目前我还没用到 估计是javascript调用时会用到 string GeoUri = "http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=39.983424,116.322987&output=json&pois=1&ak=()"; //响应对象 HttpResponseMessage message2 = client.GetAsync(new Uri(GeoUri)).Result; //响应内容的长度 int length = message2.Content.ReadAsStringAsync().Result.Length; //由于会返回renderReverse&renderReverse的前缀 所以把它删除 不然不符合Json格式要求 string result = message2.Content.ReadAsStringAsync().Result.Remove(length - 1).Remove(0, 29);//substring 包含头不包含尾 //这里的处理也是为了让数据满足json格式要求 result = "[" + result + "]"; //把结果转换为JArray JArray ja = (JArray)JsonConvert.DeserializeObject(result); //转化为JObject对象 JObject jsonObj = (JObject)ja[0]; //读取数据 这里要注意返回的数据格式 之前我就因为写错一个字符 导致接受不到数据 int ss = (int)jsonObj["status"]; string provinceName = (string)jsonObj["result"]["addressComponent"]["province"]; string cityName = (string)jsonObj["result"]["addressComponent"]["city"]; string districtName = (string)jsonObj["result"]["addressComponent"]["district"]; string street = (string)jsonObj["result"]["addressComponent"]["street"];
提示:这里处理数据用到Newtonsoft.Json.dll类库,引入到项目中就可以。
好像还用github的开源项目json.net,也是处理json数据的,应该用NuGet
包管理工具下载一下就可以用了,一般在它的官网也有教程的,由于本人没看过,
所以就不多说了。
相关文章推荐
- .Net/C# 应用程序直接读取本地 Cookies 文件 (由于 WinXP SP2 调用 API: InternetGetCookie 无果)
- C#中调用API
- C#中调用API
- WinPcap中Pocket.dll里的PacketGetAdapterNames这个API在C#里面的调用
- C#调用api,或C++生成的dll
- C#中调用WIN32 API实现对光驱的操作
- C#中调用API
- c#调用API 和c++dll的参数问题
- C#中调用API
- C#调用API
- C#中调用API(二转载)
- C#中调用API(一转载)
- 在C#中如何调用windows的API进行关机操作!!! [转]
- 关于C#调用API
- C#调用API
- C#调用API读写INI文件
- 实现用C#和VB.NET调用Ghostscript的API,把Postscript文件转为PDF文件。
- C#调用API访问其它进程
- 一个关于C#调用API的网站
- C#中调用API