消息[无效值]地址[ - ]原因[无效]域[全球]

问题描述 投票:3回答:3

我使用的是谷歌自定义搜索API的几年。此代码正在与谷歌NuGet包“Google.Apis.Customsearch.v1客户端库”(v1.9.0.460)。

这是我的C#代码:

public Search SearchNow(string query)
{
    CustomsearchService service = new CustomsearchService(
        new BaseClientService.Initializer()
        {
            ApiKey = Properties.Resources.Google_Key,
            ApplicationName = "my-app-name"
        });

    CseResource.ListRequest req = service.Cse.List(query);
    req.Cx = Properties.Resources.Google_CX;
    req.Start = 1;

    return req.Execute();
}

此代码是我的服务器上运行更多的话,一年没有任何问题。自上周开始,我开始找回此异常:

服务customsearch已抛出异常:Google.GoogleApiException:Google.Apis.Requests.RequestError无效

值[400]误差

[信息[无效值]地址[ - ]原因[无效]域[全球]

在Google.Apis.Requests.ClientServiceRequest`1.Execute(c)中:\代码\ google.com \ Google处理API-DOTNET客户端\默认\工具\ Google.Apis.Release \ BIN \调试\测试\默认\在### SearchNow(字符串查询,Int64的startResult)在###行96 CS:在Tests.Program.Main()在*** \测试线144的Src \ GoogleApis \蜜蜂\请求\ ClientServiceRequest.cs。 \的Program.cs:行67

我不知道是什么改变了\为什么这停止工作。

我由一个小测试 - 发送一个“Hello World”搜索查询到谷歌 - 这是工作的第一次。我运行这个测试agian和agian,发现这个代码在次70%的工作不错,其他时候,它失败(错误上面提到的)。

我在双核实这些PARAMS:ApiKey,应用程序名称,CX。

所以,可能是什么问题呢?

c# google-api google-custom-search
3个回答
3
投票

这个问题似乎是:

req.Start = 1;

从我的代码删除此解决了这个问题对我来说。


0
投票

如果查询CSE JSON API时开始参数设置为一个数字大于100,则会出现此错误。结果的数量限制为最多。 100个结果。

从谷歌CSE文档:

开始:第一个结果的索引返回。每页的结果的默认数目为10,因此&开始= 11将在结果的第二页的顶部开始。注:JSON API将永远不会返回超过100个结果,即使超过100个文档符合查询条件,所以开始+ NUM的总和设置成一个大于100号将产生错误。另请注意,NUM的最大值为10。

https://developers.google.com/custom-search/v1/cse/list

解决方案:总是设置开始参数为数字<= 100。


0
投票

这可能有助于太....我已经得到了这个错误:

Google.GoogleApiException:“值Google.Apis.Requests.RequestError无效的资源ID。 [400]错误[内容[值无效的资源ID]位置[ - ]原因[无效]域[全球]

而原因是设置事件ID为一个字符串长度谁短于5。 修正了类:

sEventID = value.PadLeft(5, '0');

Event.id reference

© www.soinside.com 2019 - 2024. All rights reserved.