Визуальный поиск Bing C # SDK возвращает пустой ответ - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь сделать простой инструмент, который использует Bing Visual Search API. Я следую этому руководству , чтобы настроить SDK, но ответ API кажется почти пустым, независимо от того, какое изображение я передаю этому методу поиска:

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

Я также подумал, что это может быть вызвано неправильной аутентификацией, но, похоже, он возвращает 200, поэтому я больше не уверен.

В теле ответа отображаются только основные данные и один пустой тег:

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

Я использую эту семидневную пробную подписку и пытаюсь пройти аутентификацию с обоими ключами, которые она мне дала.

Я что-то здесь упускаю?

Edit:

Вот функция загрузки. Загружает вложения .png по ссылкам Discord:

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

1 Ответ

0 голосов
/ 03 июля 2018

Вы правы, считая, что аутентификация не является проблемой, потому что вы получаете какой-то ответ JSON - иначе это будет ошибка 401. Этот пустой ответ возникает, когда есть проблема с форматом файла, и API не распознает, что поток, который вы передаете, является изображением. (Если вы загрузите файл .txt, вы получите такой же пустой ответ.)

Если вы отправите код в функцию DownloadStream, мы сможем помочь вам в дальнейшей отладке.

...