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

ASP.NET中调用Google API无响应,请求超时问题求助

解决Google Places Autocomplete API请求超时问题

Hey,我看了你的代码,问题主要出在这几个地方:

请求方式不对

Google Places Autocomplete的autocomplete接口只支持GET请求,但你用了WebClient.UploadString——这个方法是用来发送POST请求的,API根本不会处理你的POST请求,所以会一直等到超时。

URL格式有问题

你URL里的&是HTML转义后的字符,直接放在URL里会导致参数解析错误,应该换成普通的&。另外,你把空格替换成逗号的操作不规范,正确的做法是对输入内容做URL编码,这样不管输入里有什么特殊字符,都不会破坏URL结构。

资源管理可以优化

没有用using来管理WebClient,虽然这不是超时的直接原因,但容易造成资源泄漏,建议加上。


修正后的代码如下,我加了注释和异常处理,方便你调试:

using System;
using System.Net;
using System.Web;

class PlaceAutocompleteExample
{
    static void Main()
    {
        // 对输入文本进行URL编码,处理空格、特殊字符
        string inputText = HttpUtility.UrlEncode("Andheri West");
        string apiKey = "AIzaSyA5WiXTvjPSXEMGwFP0olr9vQuHSk-GVjY";
        
        // 构造正确的API请求URL,用&分隔参数
        string apiUrl = $"https://maps.googleapis.com/maps/api/place/autocomplete/json?input={inputText}&key={apiKey}";
        
        // 使用using自动释放WebClient资源
        using (WebClient webClient = new WebClient())
        {
            // 设置代理凭据(如果你的网络环境需要代理访问外网)
            WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
            
            try
            {
                // 发送GET请求并获取响应字符串
                string responseString = webClient.DownloadString(apiUrl);
                // 这里可以处理responseString,比如解析JSON
                Console.WriteLine("API响应:");
                Console.WriteLine(responseString);
            }
            catch (WebException ex)
            {
                Console.WriteLine($"请求失败:{ex.Message}");
                // 如果API返回了错误响应,打印出来方便排查
                if (ex.Response != null)
                {
                    using (var responseReader = new System.IO.StreamReader(ex.Response.GetResponseStream()))
                    {
                        Console.WriteLine("API错误详情:");
                        Console.WriteLine(responseReader.ReadToEnd());
                    }
                }
            }
        }
    }
}

另外还有几个需要注意的点:

  • 确认你的API密钥已经启用了Places API权限,并且没有超出配额,否则API会返回错误(可能表现为超时或者无响应)。
  • 如果你的环境有防火墙或者公司代理,要确保代理配置正确,能正常访问Google的API服务器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:37:17