Front-end
<asp:Button ID="CallBingAPI" runat="server" Text="Call Bing"
οnclick="CallBingAPI_Click" />
<br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
Back-end
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Data.Services.Client;
using System.Xml;
namespace SearchEngineApplication
{
public partial class _Default : System.Web.UI.Page
{
const string AppId = "@@@@@@@@@@Your Code@@@@@@@@@@@@"; // the App ID of Bing
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void CallBingAPI_Click(object sender, EventArgs e)
{
string serviceRoot = "https://api.datamarket.azure.com/Bing/Search/";
string imageQueryRoot = serviceRoot + "Web?";
string imageQuery = imageQueryRoot + "Query='xiao'&$top=1";
var document = new XmlDocument();
var accountCredential = new NetworkCredential(AppId, AppId);
var resolver = new XmlUrlResolver();
resolver.Credentials = accountCredential;
document.XmlResolver = resolver;
document.Load(imageQuery);
var namespaceManager = new XmlNamespaceManager(document.NameTable);
namespaceManager.AddNamespace("atom", "http://www.w3.org/2005/Atom");
namespaceManager.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");
namespaceManager.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices");
string nextResultSet = document.SelectSingleNode(
"/atom:feed/atom:link[@rel='next']/@href",
namespaceManager).Value;
XmlNodeList imageResults = document.SelectNodes(
"/atom:feed/atom:entry/atom:content/m:properties",
namespaceManager);
foreach (XmlNode imageResult in imageResults)
{
Label1.Text += " " + imageResult.SelectSingleNode(".//d:Title", namespaceManager).InnerText;
}
foreach (XmlNode imageResult in imageResults)
{
Label1.Text += " " + imageResult.SelectSingleNode(".//d:Description", namespaceManager).InnerText;
}
}
}
}