Inicio rápido: Llamada al punto de conexión de Bing Custom Search con C#

Advertencia

El 30 de octubre de 2020, las API de Bing Search se trasladaron de los servicios de Azure AI a los servicios de Bing Search. Esta documentación se proporciona solo como referencia. Para obtener documentación actualizada, consulte la documentación de Bing Search API. Para obtener instrucciones sobre cómo crear nuevos recursos de Azure para Bing Search, consulte el artículo sobre la creación de un recurso de Bing Search a través de Azure Marketplace.

Use este inicio rápido para aprender cómo solicitar los resultados de búsqueda de la instancia de Bing Custom Search. Si bien esta aplicación está escrita en C#, Bing Custom Search API es un servicio web RESTful compatible con la mayoría de los lenguajes de programación. El código fuente del ejemplo está disponible en GitHub.

Prerrequisitos

  • Una instancia de Bing Custom Search. Para más información, consulte Inicio rápido: Creación de la primera instancia de Bing Custom Search.

  • Microsoft .NET Core.

  • Cualquier edición de Visual Studio 2019 o versiones posteriores.

  • Si usa Linux o MacOS, esta aplicación puede ejecutarse con Mono.

  • El paquete Bing Custom Search de NuGet.

    Para instalar este paquete en Visual Studio:

    1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Administrar paquetes NuGet.
    2. Busque y seleccione Microsoft.Azure.CognitiveServices.Search.CustomSearch y, a continuación, instale el paquete.

    Al instalar el paquete NuGet de Bing Custom Search, Visual Studio también instala los siguientes paquetes:

    • Microsoft.Rest.ClientRuntime
    • Microsoft.Rest.ClientRuntime.Azure
    • Newtonsoft.Json

Creación de un recurso de Azure

Comience a usar la API Bing Custom Search mediante la creación de uno de los recursos de Azure que se indican a continuación.

Recurso de Bing Custom Search

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de la aplicación

  1. Cree una aplicación de consola en C# mediante Visual Studio. Agregue los siguientes paquetes al proyecto:

    using System;
    using System.Net.Http;
    using System.Web;
    using Newtonsoft.Json;
    
  2. Cree las siguientes clases para almacenar los resultados de búsqueda devueltos por Bing Custom Search API:

    public class BingCustomSearchResponse {        
        public string _type{ get; set; }            
        public WebPages webPages { get; set; }
    }
    
    public class WebPages {
        public string webSearchUrl { get; set; }
        public int totalEstimatedMatches { get; set; }
        public WebPage[] value { get; set; }        
    }
    
    public class WebPage {
        public string name { get; set; }
        public string url { get; set; }
        public string displayUrl { get; set; }
        public string snippet { get; set; }
        public DateTime dateLastCrawled { get; set; }
        public string cachedPageUrl { get; set; }
    }
    
  3. En el método principal del proyecto, cree las siguientes variables para la clave de suscripción de Bing Custom Search API, el identificador de configuración personalizada de su instancia de búsqueda y un término de búsqueda:

    var subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    var customConfigId = "YOUR-CUSTOM-CONFIG-ID";
    var searchTerm = args.Length > 0 ? args[0]:"microsoft";
    
  4. Construya la dirección URL de solicitud anexando el término de búsqueda al parámetro de consulta q=, y el identificador de configuración personalizada de la instancia de la búsqueda al parámetro customconfig=. Separe los parámetros con un carácter de "y" comercial (&). Para el valor de variable url puede usar el punto de conexión global en el código siguiente, o el punto de conexión del subdominio personalizado que se muestra en Azure Portal para el recurso.

    var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" +
                "q=" + searchTerm + "&" +
                "customconfig=" + customConfigId;
    

Envío y recepción de una solicitud de búsqueda

  1. Cree una solicitud de cliente y agregue su clave de suscripción al encabezado Ocp-Apim-Subscription-Key.

    var client = new HttpClient();
    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
    
  2. Realice la solicitud de búsqueda y obtenga la respuesta como una cadena JSON.

    var httpResponseMessage = client.GetAsync(url).Result;
    var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result;
    BingCustomSearchResponse response = JsonConvert.DeserializeObject<BingCustomSearchResponse>(responseContent);
    

Procese y visualice los resultados

  • Recorre en iteración el objeto de respuesta para mostrar información sobre cada resultado de búsqueda, incluido el nombre, la dirección URL y la fecha en que la página web se rastreó por última vez.

    for(int i = 0; i < response.webPages.value.Length; i++) {                
        var webPage = response.webPages.value[i];
    
        Console.WriteLine("name: " + webPage.name);
        Console.WriteLine("url: " + webPage.url);                
        Console.WriteLine("displayUrl: " + webPage.displayUrl);
        Console.WriteLine("snippet: " + webPage.snippet);
        Console.WriteLine("dateLastCrawled: " + webPage.dateLastCrawled);
        Console.WriteLine();
    }
    Console.WriteLine("Press any key to exit...");
    Console.ReadKey();
    

Pasos siguientes