WindowsPhone8 自動擷取 ip 以及 目前所在城市資訊
示例代碼如下:
/// <summary>
/// 擷取目前地理資訊
/// </summary>
public static class GetCurrentAddressInfo
{
#region 擷取目前的位址
/// <summary>
/// 擷取目前的位址
/// </summary>
public static void GetCurrentAddress()
{
//擷取目前位址的 API
UriBuilder urlbuilder =
new UriBuilder("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js");
//建立 HttpWebRequest 對象
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlbuilder.Uri);
//異步調用
IAsyncResult result = request.BeginGetResponse(ResponseCallback, request);
}
static void ResponseCallback(IAsyncResult result)
{
App _currentApp = (App)Application.Current;
//擷取異步傳回的資訊
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
//建立 HttpWebResponse 對象
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);
//讀取檔案流
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
//Json 串
String strJson = @reader.ReadToEnd()
.Replace("var remote_ip_info = ", "")
.Replace(";", "");
Byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strJson);
using (MemoryStream ms = new MemoryStream(buffer))
{
//調用 DataContractJsonSerializer 解析Json
DataContractJsonSerializer serializer = new
DataContractJsonSerializer(_currentApp._address.GetType());
_currentApp._address = (Address)serializer.ReadObject(ms);
}
}
}
#endregion
}
#region Address 位址類
/// <summary>
/// Address 位址類
/// </summary>
public class Address
{
/// <summary>
/// id 省份或城市的編号
/// </summary>
public String id { get; set; }
/// <summary>
/// updateTime 更新時間
/// </summary>
public String updateTime { get; set; }
/// <summary>
/// Country 國家
/// </summary>
public String country { get; set; }
/// <summary>
/// Province 省份
/// </summary>
public String province { get; set; }
/// <summary>
/// City 市
/// </summary>
public String city { get; set; }
/// <summary>
/// cityPhoto 城市圖檔
/// </summary>
public String cityPhoto { get; set; }
/// <summary>
/// weatherInfo 今日天氣實況
/// </summary>
public String toDayweather { get; set; }
/// <summary>
/// lifeInfo 生活指數
/// </summary>
public String lifeInfo { get; set; }
/// <summary>
/// cityIntroduce 城市介紹
/// </summary>
public String cityIntroduce { get; set; }
}
#endregion
源碼下載下傳位址: http://download.csdn.net/download/yimiyuangguang/6945069
以上案例僅供學習參考,如有不足之處還請提出指正,謝謝!