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

Google Places API浏览器调用有结果,代码调用返回零结果的原因

可能导致结果不一致的原因分析

我帮你梳理几个最可能的原因,你可以逐一排查:

1. URL中的转义字符问题

你提供的URL里包含&,这是HTML中对&的转义字符。在浏览器地址栏输入时,浏览器会自动把&解析成实际的&来分隔参数;但你的代码里直接使用这个URL字符串的话,&会被当作URL的一部分发送给API,导致region=IT和key=api_key这些参数没有被正确识别——API会把它们当成前一个参数的后缀,自然找不到匹配的结果。

解决方法:把URL里的所有&替换成&,确保参数分隔符正确。

2. 请求头差异(尤其是User-Agent)

浏览器发送请求时会带上标准的User-Agent头,标识自己是合法的浏览器客户端;而WebClient默认发送的User-Agent是比较老旧的标识,Google Places API可能会对这种非浏览器的请求做不同的处理,甚至返回空结果。

解决方法:手动给WebClient设置一个模拟浏览器的User-Agent:

WebClient wsClient = new WebClient();
wsClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36");
Stream stream = wsClient.OpenRead(url);
// 后续代码不变

3. 编码问题(可能性较低,但值得检查)

虽然你的query参数用了+代替空格,这在URL中是合法的,但有些HTTP客户端可能会对特殊字符的处理和浏览器不一致。你可以尝试用Uri.EscapeUriString()对整个URL进行编码,确保所有特殊字符都符合标准:

string encodedUrl = Uri.EscapeUriString(originalUrl);
Stream stream = wsClient.OpenRead(encodedUrl);

优先检查第一个问题(&替换成&),这是最常见的导致参数失效的原因。

内容的提问来源于stack exchange,提问作者Daniele Z.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:12:35