码迷,mamicode.com
首页 > Windows程序 > 详细

C# 后台通过网络地址访问百度地图取回当前在地图上的经纬度,并将取回的复杂Json格式字符串反序列化(Newtonsoft.Json)

时间:2017-04-21 09:53:43      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:pes   control   百度地图   业务   security   响应   str   申请   内容   

直接上代码:解释都在代码中

ak 要自己去百度地图申请.

其中申请ak的时候,有个属性render直接填*就行.

namespace HampWebControl 是我的空间命名!

namespace HampWebControl 是我的空间命名!

namespace HampWebControl 是我的空间命名!

using Newtonsoft.Json;
using System;
using System.IO;
using System.Net;
using System.Security.Policy;
using System.Text;
 
namespace HampWebControl
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var a = ReturnXY();
            #region 这里弹出窗口来查看xy的值,实际业务中应该是要保存这个xy的值的
            string X = a.x.ToString();
            string Y = a.y.ToString();
            string alert = "x值:"+X+",y值: "+Y;
            Response.Write("<script>alert(‘"+ alert + "‘);</script>");
            #endregion
        }
        public static Point ReturnXY() {
            string strBuff = "";
            Url url = new Url("http://api.map.baidu.com/location/ip?ak=" + "自己申请的百度AK"
                + "&coor=bd09ll");
            ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法 建立,并进行强制的类型转换   
            HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(url.Value);
            ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换   
            HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();
            ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容   
            ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错 误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理   
            Stream respStream = httpResp.GetResponseStream();
            ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以   
            ///StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)   
            StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);
            strBuff = respStreamReader.ReadToEnd();
            Models models = JsonConvert.DeserializeObject<Models>(strBuff);
            var xy=models.content.point;
            return xy;
        }
    }
 
 
    public class Models{
        public string address { get; set; }
        public Content content { get; set; }
        public int status { get; set; }
    }
 
    public class Content {
        public string address { get; set; }
        public AddressDetail address_detail { get; set; }
        public Point point { get; set; }
    }
 
    public class AddressDetail {
        public string city { get; set; }
        public int city_code { get; set; }
        public string district { get; set; }
        public string province { get; set; }
        public string street { get; set; }
        public string street_number { get; set; }
 
    }
 
    public class Point {
        public Decimal x { get; set; }
        public Decimal y { get; set; }
    }
 
}

C# 后台通过网络地址访问百度地图取回当前在地图上的经纬度,并将取回的复杂Json格式字符串反序列化(Newtonsoft.Json)

标签:pes   control   百度地图   业务   security   响应   str   申请   内容   

原文地址:http://www.cnblogs.com/ykl123/p/6741628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!