首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET 調用百度地圖 IP 定位 API:HttpClient 獲取 JSON 並反序列化

     編輯:程式設計綜合問答

完整調用示例


using System.Net.Http;
using Newtonsoft.Json;

public class BaiduLocation {
    public string address { get; set; }
    public Content content { get; set; }
    public class Content {
        public Point point { get; set; }
        public class Point { public double x, y; }
    }
}

public async Task GetLocationAsync(string ip) {
    var url = $"https://api.map.baidu.com/location/ip?ak=YOUR_AK&ip={ip}&coor=bd09ll";
    using (var client = new HttpClient()) {
        string json = await client.GetStringAsync(url);
        return JsonConvert.DeserializeObject(json);
    }
}

// 調用
var loc = await GetLocationAsync("118.113.163.95");
Console.WriteLine($"經度:{loc.content.point.x}, 緯度:{loc.content.point.y}");

關鍵點

  • HttpClient 復用:單例或 DI 注入,避免 Socket 耗盡。
  • 異步 await:不阻塞線程,Web 應用必須。
  • JSON.NET 反序列化:JsonConvert.DeserializeObject 自動映射。
  • 錯誤處理:捕獲 HttpRequestException、檢查 status 字段(百度返回 0 成功)。

舊版 WebClient 寫法(不推薦)


using (var wc = new WebClient()) {
    string json = wc.DownloadString(url); // 同步阻塞
    // 同樣用 JsonConvert 解析
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved