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

}

  

 posted on 2025-01-22 15:56  代码改变世界&1024  阅读(18)  评论(0)    收藏  举报