Размер фильтра поиска изображений 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), "\'"));