【问题标题】:Bing Visual Search C# SDK returns an empty responseBing Visual Search C# SDK 返回一个空响应
【发布时间】:2018-07-01 14:39:17
【问题描述】:

我正在尝试制作一个使用 Bing Visual Search API 的简单工具。我正在关注this guide 来设置 SDK,但无论我将哪个图像传递给该 Search 方法,API 响应似乎都是空的:

var ms = await DownloadStream(img);
var res = await client.Images.VisualSearchMethodAsync(image: ms, knowledgeRequest: (string)null);

我也认为可能是auth不正确造成的,但它似乎返回200,所以我不确定了。

响应正文只显示基本内容和一个空标签:

{"_type": "ImageKnowledge", "instrumentation": {"_type": "ResponseInstrumentation"}, "tags": [{"displayName": "", "actions": [{"actionType": "MoreSizes"}, {"actionType": "ImageById"}]}], "image": {"imageInsightsToken": ""}}

我正在使用 7 天试用订阅,并尝试使用它给我的两个密钥进行身份验证。

我错过了什么吗?

编辑:

这里是下载功能。它从 Discord 链接下载 .png 附件:

static async Task<MemoryStream> DownloadStream(string url)
{
    var ms = new MemoryStream();
    using (var http = new HttpClient())
    using (var res = await http.GetAsync(url))
        if (res.IsSuccessStatusCode)
        {
            await res.Content.CopyToAsync(ms);
            ms.Position = 0;
        }
    return ms;
}

链接示例:https://cdn.discordapp.com/attachments/462686437331042306/462987122203295754/61A88kq3rJL.SY355.jpg

【问题讨论】:

    标签: c# .net sdk bing-api


    【解决方案1】:

    您认为身份验证不是问题是正确的,因为您会收到某种 JSON 响应——否则将是 401 错误。当您的文件格式存在问题并且 API 无法识别您传入的流是图像时,会发生此空响应。 (如果你上传了一个 .txt 文件,你会得到同样的空响应。)

    如果您将代码发布到您的 DownloadStream 函数,我们或许可以帮助您进一步调试。

    【讨论】:

    • 感谢您的回答!我编辑了我的问题并包含了下载方法。
    • 您实际上可以直接在视觉搜索请求中使用 URL,而无需下载图像! Here's an example 使用 URL 发送请求。
    • 使用您当前的代码,问题可能在于 MemoryStream 只是一个字节流,并且数据可能不包含所需的文件类型信息。 Here 是 SDK 尝试将图像转换为 FileStream 的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多