如何将 Google 安全浏览 (v4) 与 .NET 结合使用

2024-01-03

我正在尝试使用 Google 的安全浏览查找 API(v4,https://developers.google.com/safe-browsing/v4/lookup-api https://developers.google.com/safe-browsing/v4/lookup-api)使用 .NET 应用程序,但无法找到示例代码。

我安装了 Google 的 nuget 包,但在他们的 github 存储库上找不到任何示例https://github.com/google/google-api-dotnet-client https://github.com/google/google-api-dotnet-client

我能找到的最好的例子是https://developers.google.com/api-client-library/dotnet/get_started https://developers.google.com/api-client-library/dotnet/get_started但即便如此,也没有准确地告诉我我在寻找什么。我只是想查找 URL 的状态。以下是我从谷歌找到的唯一示例。

        // Create the service.
        var service = new DiscoveryService(new BaseClientService.Initializer
            {
                ApplicationName = "Discovery Sample",
                ApiKey="[YOUR_API_KEY_HERE]",
            });

        // Run the request.
        Console.WriteLine("Executing a list request...");
        var result = await service.Apis.List().ExecuteAsync();

        // Display the results.
        if (result.Items != null)
        {
            foreach (DirectoryList.ItemsData api in result.Items)
            {
                Console.WriteLine(api.Id + " - " + api.Title);
            }
        }

我也尝试过包装https://github.com/acastaner/safebrowsinglookup https://github.com/acastaner/safebrowsinglookup使用看起来相当简单

 var client = new LookupClient("key", "dotnet-client");
 var response = await client.LookupAsync("http://amazon.com");

但这每次都“未知”地回来。我确保我向 google 注册了一个新密钥,并授予其访问 Google Safe Browsing Api 4 的权限。

关于如何使用谷歌的API来获取一个或多个网址的响应有什么建议吗?

欣赏它!


经过反复试验,我终于弄清楚了。

我的原始代码试图使用LookupClient这对我不起作用。我通过查看谷歌如何初始化他们的发现服务找到了解决方案,并从那里构建了FindthreatMatchesRequest()

        var service = new SafebrowsingService(new BaseClientService.Initializer
        {
            ApplicationName = "dotnet-client",
            ApiKey = "API-KEY"
        });

        var request = service.ThreatMatches.Find(new FindThreatMatchesRequest()
        {
            Client = new ClientInfo
            {
                ClientId = "Dotnet-client",
                ClientVersion = "1.5.2"
            },
            ThreatInfo = new ThreatInfo()
            {
                ThreatTypes = new List<string> { "Malware" },
                PlatformTypes = new List<string> { "Windows" },
                ThreatEntryTypes = new List<string> { "URL" },
                ThreatEntries = new List<ThreatEntry>
                {
                    new ThreatEntry
                    {
                        Url = "google.com"
                    }
                }
            }
        });

        var response = await request.ExecuteAsync();

希望这可以帮助任何寻求快速解决方案的人。不要忘记添加您的 Api 密钥

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Google 安全浏览 (v4) 与 .NET 结合使用 的相关文章

随机推荐

  • 错误:之前应有“=”、“,”、“;”、“asm”或“__attribute__”

    是的 我知道这个问题以前已经被问过很多次了 但是我正在绞尽脑汁试图找出导致错误的原因 因为我无法识别通常丢失的分号在哪里 list h list h ifndef LIST H define LIST H define TRUE true
  • 从 Powershell 运行 R 脚本

    在批处理脚本中 我可以使用以下语法运行 R 脚本 Rterm exe quiet slave vanilla lt C some script R 不过 Powershell似乎为以后的扩展保留了 你可能应该看看Rscript而不是重定向
  • grails 将验证错误添加到 hasErrors

    我想知道如何向 hasErrors 方法添加自定义错误 以便 gsp 检测到错误 到目前为止我的代码 def recoverySetup new RecoverySetup params def onesolOrgkey OnesolOrg
  • '-[CIContext initWithOptions:]: 无法识别的选择器发送到实例

    我用它来生成一个大图像 let context CIContext options nil let bitmapImage CGImageRef context createCGImage image fromRect extent CGC
  • WordPress 插件内子页面的 url 解析

    假设我在 WordPress 中有一个页面 foo 这样 http www blah com foo 就会显示它 假设此页面的内容中有一个触发器 例如 现在有没有一种方法可以让插件知道它想要处理该类型的所有 urlhttp www blah
  • 在 Firebase 存储上复制文件?

    是否可以复制 Firebase 存储上的现有文件而无需再次上传 我需要它来设置我的应用程序的已发布 工作版本 Firebase Storage API 中没有方法可以为您已上传的文件创建副本 但 Firebase Storage 是建立在
  • 使用 Azul jdk 11 运行嵌入式 cassandra 时出现 AccessDeniedException

    我正在尝试使用 cassandra unit 库运行嵌入式 Cassandra蓝色 JDK 11使用 Gradle 项目并获取以下 AccessDenindException 我已经检查了权限build文件夹不是只读的 并且已经有一些文件
  • 选择不同的通知并准备更清晰的通知消息

    我已经创建了一个通知系统 它非常好 为了使其完美 还有一些事情需要改进 所以我就在这里 我正在开发的应用程序是一个用 PHP 编写的网站 我的通知有这个seen指示通知是否已签出的列 当用户单击与 Facebook 非常相似的通知下拉按钮时
  • 如何导入资源模块?

    今天我看到一个 python 文件以 import sys import time import heapq import resource from itertools import groupby from collections im
  • Heroku Rails Procfile

    我对 Heroku 很陌生 我将 Rails 应用程序上传到 Heroku 并希望使用 Thin 而不是 Webrick 来运行它 下列的Heroku 的指南 https devcenter heroku com articles rail
  • 带有 Flex SDK 的 Flash 组件

    我正在使用 Flex SDK 将 ActionScript 3 类编译为 swf 有些组件未包含在 SDK 中 例如 fl controls 组件 我有哪些选项可以访问闪存组件 我看到其他人提到我可以将它们导出到 Flash Pro 中的
  • Lua:加载文件后获取全局函数失败

    我正在尝试调用名为 test2 lua 的 lua 文件内的函数 这是test2 lua的内容 function abc path t table insert t a return t end 正如您所看到的 它需要一个输入并返回一个字符
  • Android:读取在 Google Drive 文件选择器中选择的文件

    在我的应用程序中 我需要读取一个设置文件 该设置文件可以位于本地存储中 也可以位于用户的 Google Drive 存储中 安装了 Google Drive 应用程序 下面打开一个文件选择器 首先询问用户要使用哪个文件选择器 包括使用 Go
  • 如何检索一个人的所有 GitHub 存储库列表?

    我们需要显示一个人在 GitHub 帐户上的存储库中的所有项目 如何使用特定人员的 git 用户名显示其所有 git 存储库的名称 您可以使用github API http developer github com v3 repos 为了这
  • 第二次加载谷歌地图片段时,膨胀视图上的空指针

    我正在使用 DrawerLayout 当我第二次加载谷歌地图片段时 异常将按预期被捕获 但是 当我尝试时 进一步采用相同的方法 Button btnShowList Button ui findViewById R id btnShowLi
  • 这是全局范围内的严格模式(在 ES2015 中)

    有人可以指出 ES2015 标准中说明什么的地方吗 this在全局范围内以严格模式使用时必须引用 我发现它等于window在我的 firefox 和 chrome 中 但不等于window在我的 Windows 7 x64 下的 IE11
  • 为什么钥匙串比保存在文件中的加密数据更安全?

    为什么钥匙串比 iOS 应用程序文档目录中保存为文件的加密数据更安全 通常 数据使用对称加密算法 例如 AES 进行加密 并且加密密钥保存在钥匙串中 数据可以放置在任何文件位置 通过加密算法和密钥进行保护 钥匙串存储加密的密钥 和其他小数据
  • 将 SOLR 查询转换为 ElasticSearch URI 格式

    我已将 SOLR 核心文档移至 ElasticSearch 索引 现在我需要将 SOLR 查询参数转换为 ES 格式 我在这里看过ES文档https www elastic co guide en elasticsearch referen
  • 如何列出 Rails 中的所有自动加载路径

    如何列出 Rails 中的所有自动加载路径 在 Rails 控制台中 当我执行此操作时 它仅列出添加到配置中的自定义路径 rails c Loading development environment Rails 3 2 9 1 9 3p1
  • 如何将 Google 安全浏览 (v4) 与 .NET 结合使用

    我正在尝试使用 Google 的安全浏览查找 API v4 https developers google com safe browsing v4 lookup api https developers google com safe b