IMPLEMENTER LES SERVICES VIA LE PROTOCOLE SOAPRECUPERER LES RESULTATS DEPUIS LE SERVICE WEB DE BING| Pour faire ce dossier, j'ai donc développé un cas concret et le résultat permet de voir quels sont les résultats retournés par Bing selon des critères et comme sources le web , les images et les vidéos. Notez que je n'ai pas passé de temps sur le rendu esthétique de la page | .jpg) |
On pourrait imaginer notamment pour des entreprises dont le business est le Search Engine Optimization (SEO) de vouloir comparer les résultats de ses clients selon le marché adressé par Bing.
Il est très simple de dresser un tableau qui compare le top 10 des résultats par marché. Au niveau code, la première étape consiste à initialiser notre objet SearchRequest qui va encapsuler l'ensemble des informations nécessaires à Bing pour vous retourner les résultats eux-mêmes encapsulés dans un objet SearchResponse. SearchRequest request = new SearchRequest(); request.Web = new WebRequest(); request.Web.Count = 10; request.AppId = "<<YOURAPPID>>"; request.Query = "Vincent Bellet"; request.Market = "fr-FR"; request.Sources = new SourceType[] { SourceType.Web, SourceType.Image, SourceType.Video }; request.Version = "2.0"; Les différentes sources sont bien définies dans un tableau de SourceType. La propriété version définit la version de l'API Bing utilisée. On voit que par exemple on a spécifié la propriété Count des résultats Web à 10, on peut faire exactement la même chose pour chaque type de source. La seconde étape consiste à initialiser le service Bing et un objet SearchResponse qui va encapsuler les résultats suite à l'appel à la fonction Search du service Web. using (BingService service = new BingService()) { SearchResponse response = service.Search(request); } Pour mon exemple, j'ai utilize des Repeaters pour l'affichage des résultats. Vous trouverez ci-dessous les différentes parties de code qui permettent de récupérer telle ou telle valeur, propriété... Informations sur les résultats// Nombre de résultat Web topWebNumber.Text = response.Web.Results.Length.ToString();
// Nombre de résultat Image topImgNumber.Text = response.Image.Results.Length.ToString();
// Nombre de résultat Video topVideosNumber.Text = response.Video.Results.Length.ToString(); Informations sur la recherchesearchEngineVersionLabel.Text = response.Version; searchResultsLabel.Text = "Displaying " + response.Web.Offset + 1 + " to " + response.Web.Offset + response.Web.Results.Length + " of " + response.Web.Total + " results"; searchQuery.Text = response.Query.SearchTerms; Note: la concaténation des string ci-dessus n'est qu'un exemple, ce n'est pas la manière la plus propre de traiter ce genre de mécanisme ! L'idée est de montrer la récupération des données. Afficher les résultats dans la page Web WEB<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <asp:Label runat="server" ID="titleTextBox" Font-Bold="true" Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>'></asp:Label><br /> <asp:Label runat="server" ID="descriptionTextBox" Font-Italic="true" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'></asp:Label><br /> <asp:HyperLink runat="server" ID="urlLabel" Text='<%# DataBinder.Eval(Container.DataItem, "DisplayUrl") %>' NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "Url") %>'></asp:HyperLink> <br /><br /> </ItemTemplate> </asp:Repeater> IMAGE<asp:Repeater ID="Repeater2" runat="server"> <ItemTemplate> <asp:Image runat="server" ID="img" ImageUrl='<%# DataBinder.Eval(Container.DataItem,"Thumbnail.Url") %>' /> <br /><br /> </ItemTemplate> </asp:Repeater> VIDEOS<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <asp:Image runat="server" ID="img" ImageUrl='<%# DataBinder.Eval(Container.DataItem,"StaticThumbnail.Url") %>' /> <asp:Label runat="server" ID="titleTextBox" Font-Bold="true" Text='<%# DataBinder.Eval(Container.DataItem, "SourceTitle") %>'></asp:Label> <asp:HyperLink runat="server" ID="Label1" Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>' NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "PlayUrl") %>'></asp:HyperLink> </ItemTemplate> </asp:Repeater> Et puis bien entendu, il vous faut indiquer votre source de données à vos Repeater :) myWebRepeater.DataSource = response.Web.Results; myWebRepeater.DataBind(); myImageRepeater.DataSource = response.Image.Results; myImageRepeater.DataBind(); myVideoRepeater.DataSource = response.Video.Results; myVideoRepeater.DataBind(); Bien entendu, la requête pourrait être complètement dynamique selon des paramètres sélectionnés par l'utilisateur. Ce n'était pas l'objectif de ce dossier, je voulais réellement vous montrer la portée importante des services de Bing et vous donner des idées pour intégrer ce type de fonctionnalité dans vos applications ! |