Google 使用 C# 搜索 API

Google search API with C#

我正在尝试使用 google 搜索 api 使用此代码:

// perform search
WebQuery retreiver = new WebQuery(query);
retreiver.StartIndex.Value = 1;
retreiver.HostLangauge.Value = Languages.English;
IGoogleResultSet<GoogleWebResult> rawresults = GoogleService.Instance.Search<GoogleWebResult>(retreiver);
//declare results list
List<string> resultslist = new List<string>();
//add results to list
foreach (GoogleWebResult result in rawresults.Results)
{
    resultslist.Add(result.Content);
}

用这个 api - Search AP

但我一直收到未设置对象实例的对象引用错误,您能解释一下错误的原因和方式吗?

查看 source code of GoogleService class 后,您的代码缺少一些空值检查。如果抛出异常,方法 Search<ResultType>(IGoogleQuery query) return 一个空引用。

您可以检查内部异常,您可能会发现空引用异常背后的确切错误是什么。

// perform search
WebQuery retreiver = new WebQuery(query);
retreiver.StartIndex.Value = 1;
retreiver.HostLangauge.Value = Languages.English;
IGoogleResultSet<GoogleWebResult> rawresults = GoogleService.Instance.Search<GoogleWebResult>(retreiver);
if(rawresults!=null)
{
    //declare results list
    List<string> resultslist = new List<string>();
    //add results to list
    foreach (GoogleWebResult result in rawresults.Results)
    {
        resultslist.Add(result.Content);
    }
}

此外,我建议您在 try/catch 块中调用搜索方法。