Размер фильтра поиска изображений Bing API

Я использую API поиска изображений Bing, чтобы извлечь некоторые изображения из Bing. Я хочу получить маленькие изображения, средние или большие, в зависимости от задачи, которую я хочу достичь. Тем не менее, похоже, что я делаю что-то не так.

Вот мой код:

            // This is the query - or you could get it from args.

            string query = keyword;

            // Create a Bing container.

            string rootUri = "https://api.datamarket.azure.com/Bing/Search";

            var bingContainer = new Bing.BingSearchContainer(new Uri(rootUri));

            // Configure bingContainer to use your credentials.

            bingContainer.Credentials = new NetworkCredential(uid, uid);

            // Build the query.


            var imageQuery = bingContainer.Image(keyword, null, null, null, null, null, null);

            switch (i)
            {
                case 0:
                    imageQuery = imageQuery.AddQueryOption("Size", "Small");
                    break;
                case 1:
                    imageQuery = imageQuery.AddQueryOption("Size", "Medium");
                    break;
                case 2:
                    imageQuery = imageQuery.AddQueryOption("Size", "Large");
                    break;
            }
            var imageResults = imageQuery.Execute();

            foreach (var result in imageResults)
            {

                Console.WriteLine(result.Title + ":" + result.MediaUrl);

            }

Я получаю ошибку в var imageResults = imageQuery.Execute()

Вот ошибка An error occurred while processing this request

ImageQuery выглядит так (когда генерируется исключение): Ссылка

Работает без фильтров.

Мы ценим любые предложения.

1 ответ

Вы можете использовать конструктор:

var imageQuery = bingContainer.Image(keyword, null, null, null, null, null, "Size:Small");

Обратите внимание, что внутренне это происходит так:

query = query.AddQueryOption("ImageFilters", string.Concat("\'", System.Uri.EscapeDataString(ImageFilters), "\'"));

куда query ваше изображение Query

Поэтому, если вы не хотите использовать конструктор, вы должны иметь возможность переключать регистры (0,1,2) следующим образом:

var imageQuery = bingContainer.Image(keyword, null, null, null, null, null, null);

string imageFilters;
switch (i)
{
    case 0:
        imageFilters= ("Size:Small");
        break;
    case 1:
        imageFilters= ("Size:Medium");
        break;
    case 2:
        imageFilters= ("Size:Large");
        break;
}
imageQuery = query.AddQueryOption("ImageFilters", string.Concat("\'", System.Uri.EscapeDataString(imageFilters), "\'"));
Другие вопросы по тегам