<%@ 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;
}
}
}