Guida introduttiva: Chiamare l'endpoint di Ricerca personalizzata Bing usando C#
Avviso
Il 30 ottobre 2020 le API di Ricerca Bing spostate dai servizi di intelligenza artificiale di Azure ai servizi Ricerca Bing. Questa documentazione viene fornita solo per informazioni di riferimento. Per la documentazione aggiornata, vedere la documentazione dell'API di ricerca Bing. Per istruzioni sulla creazione di nuove risorse di Azure per la ricerca Bing, vedere Creare una risorsa Ricerca Bing tramite la Azure Marketplace.
Seguire questo argomento di avvio rapido per informazioni su come richiedere risultati della ricerca all'istanza di Ricerca personalizzata Bing. Anche se l'applicazione è scritta in C#, l'API Ricerca personalizzata Bing è un servizio Web RESTful compatibile con la maggior parte dei linguaggi di programmazione. Il codice sorgente di questo esempio è disponibile in GitHub.
Prerequisiti
Un'istanza di Ricerca personalizzata Bing. Per altre informazioni, vedere Avvio rapido: Creare la prima istanza di Ricerca personalizzata Bing.
Qualsiasi edizione di Visual Studio 2019 o versione successiva.
Se si usa Linux/MacOS, questa applicazione può essere eseguita tramite Mono.
Il pacchetto NuGet Ricerca personalizzata Bing.
Per installare questo pacchetto in Visual Studio:
- In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Gestisci pacchetti NuGet.
- Cercare e selezionare Microsoft.Azure.CognitiveServices.Search.CustomSearch, quindi installare il pacchetto.
Quando si installa il pacchetto NuGet di Ricerca personalizzata Bing, Visual Studio installa anche i pacchetti seguenti:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Creare una risorsa di Azure
Per iniziare a usare l'API Ricerca personalizzata Bing, creare una delle risorse di Azure seguenti.
Risorsa Ricerca personalizzata Bing
- disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.
- Usare il piano tariffario gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.
Risorsa multiservizio
- disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.
- Usare la stessa chiave e l'endpoint per le applicazioni in più servizi di intelligenza artificiale di Azure.
Creare e inizializzare l'applicazione
Creare una nuova applicazione console C# in Visual Studio. Aggiungere quindi i pacchetti seguenti al progetto:
using System; using System.Net.Http; using System.Web; using Newtonsoft.Json;
Creare le classi seguenti per archiviare i risultati della ricerca restituiti dall'API Ricerca personalizzata Bing:
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; } }
Nel metodo main del progetto creare le variabili seguenti per la chiave di sottoscrizione dell'API Ricerca personalizzata Bing, l'ID configurazione personalizzato dell'istanza di ricerca e un termine di ricerca:
var subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; var customConfigId = "YOUR-CUSTOM-CONFIG-ID"; var searchTerm = args.Length > 0 ? args[0]:"microsoft";
Creare l'URL della richiesta aggiungendo il termine di ricerca al parametro di query
q=
e l'ID configurazione personalizzato dell'istanza di ricerca al parametrocustomconfig=
. Separare i parametri con una e commerciale (&
). Per il valore della variabileurl
, è possibile usare l'endpoint globale nel codice seguente o l'endpoint di sottodominio personalizzato visualizzato nel portale di Azure per la risorsa.var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + searchTerm + "&" + "customconfig=" + customConfigId;
Inviare e ricevere una richiesta di ricerca
Creare un client di richiesta e aggiungere la chiave di sottoscrizione all'intestazione
Ocp-Apim-Subscription-Key
.var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
Eseguire la richiesta di ricerca e ricevere la risposta come oggetto JSON.
var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject<BingCustomSearchResponse>(responseContent);
Elaborare e visualizzare i risultati
Eseguire l'iterazione sull'oggetto risposta per visualizzare informazioni su ogni risultato della ricerca, inclusi nome, URL e data dell'ultima ricerca per indicizzazione della pagina Web.
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();