You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HttpClient调用Nominatim接口返回404错误求助

解决Nominatim Reverse接口404错误的问题

问题根源及修复方案

  • URL格式错误:你代码中的URL存在换行和HTML转义字符&,导致实际请求地址不完整或格式无效,直接触发404错误。需修正为无换行、使用标准&分隔参数的URL。
  • 缺少User-Agent请求头:Nominatim服务器要求所有请求必须携带有效的User-Agent标识(用于识别请求来源),否则可能拒绝请求或返回错误。
  • async void的风险:async void不适合非事件处理场景,建议改用async Task,便于异常处理和任务状态管理。

修正后的完整代码

namespace ConsoleApp7
{
internal class Program
{
    static async Task Main(string[] args)
    {
        await DownloadPageAsync();
        Console.WriteLine("Downloading page...");
        Console.ReadLine();
    }

    static async Task DownloadPageAsync()
    {
        // 修正后的合法URL
        string page = "https://nominatim.openstreetmap.org/reverse?format=geocodejson&lat=60.2299&lon=11.1663";

        using (HttpClient client = new HttpClient())
        {
            // 添加符合要求的User-Agent,替换为你的应用名称/联系方式
            client.DefaultRequestHeaders.UserAgent.ParseAdd("YourAppName/1.0 (your.email@example.com)");
            
            using (HttpResponseMessage response = await client.GetAsync(page))
            {
                // 主动校验请求状态,失败时抛出异常便于排查
                response.EnsureSuccessStatusCode();
                
                using (HttpContent content = response.Content)
                {
                    string result = await content.ReadAsStringAsync();
                    if (!string.IsNullOrEmpty(result))
                    {
                        Console.WriteLine(result);
                    }
                }
            }
        }
    }
}

关键修改说明

  1. URL修正:移除换行符,将&替换为标准参数分隔符&,确保请求地址完全符合接口要求。
  2. User-Agent配置:通过client.DefaultRequestHeaders.UserAgent添加标识信息,这是Nominatim服务的强制要求,需替换为你自己的应用相关信息。
  3. 异步方法优化:将DownloadPageAsync返回类型改为async Task,并在Main中使用await等待任务完成,避免异步操作的潜在问题。
  4. 状态校验:调用response.EnsureSuccessStatusCode(),在请求失败时直接抛出异常,快速定位错误类型(如403、404等)。

内容的提问来源于stack exchange,提问作者user14914050

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:30:56