1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <%@ WebHandler Language= "C#" Class= "openstreetmap" %> using System; using System.Web; using System.Net; using System.Net.Http; using System.Threading.Tasks; public class openstreetmap : IHttpHandler { public void ProcessRequest(HttpContext context) { //context.Response.ContentType = "text/plain"; string lat = context.Request[ "lat" ].ToString(); string lon = context.Request[ "lon" ].ToString(); // 要调用的URL string url = "https://nominatim.openstreetmap.org/reverse?format=json&lat=" + lat + "&lon=" + lon + "&zoom=18&addressdetails=1" ; string response = GetHttpClient(url); context.Response.Write(response); context.Response.End(); } private string GetHttpClient( string url) { string responsejson = "" ; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.UserAgent.ParseAdd( "dxm-int/2.0" ); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // string url = $"https://nominatim.openstreetmap.org/reverse?format=json&lat={latitude}&lon={longitude}&zoom=18&addressdetails=1"; var request = new HttpRequestMessage(HttpMethod.Get, url); request.Headers.Referrer = new Uri( "https://dxmint.yng.com.cn/" ); HttpResponseMessage response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { responsejson= response.Content.ReadAsStringAsync().Result; } else { responsejson= "获取地址接口异常" ; } } return responsejson; } public bool IsReusable { get { return false ; } } } |