这是一个基于bing搜索引擎的webservice的应用程序,利用bing提供的搜索webservice来实现自己的搜索功能
下面看下代码咯
.aspx文件中
<form id="form1" runat="server">
<div>
<asp:TextBox ID="Key" runat="server"></asp:TextBox>
<asp:Button ID="OKBtn" runat="server" Text="确定" />
</div>
<div>
<asp:ListBox ID="ListBox1" runat="server" Height="455px" Width="588px"></asp:ListBox>
</div>
</form>
<div>
<asp:TextBox ID="Key" runat="server"></asp:TextBox>
<asp:Button ID="OKBtn" runat="server" Text="确定" />
</div>
<div>
<asp:ListBox ID="ListBox1" runat="server" Height="455px" Width="588px"></asp:ListBox>
</div>
</form>
//文本框是要来获取你要查询内容的关键字
//listBox是用来显示搜索的结果
.aspx.cs文件中
注意在写这段代码时,你必须先添加web引用
http://api.search.live.net/search.wsdl
添加引用后的解决方案如图所示
然后命名空间中要引用
using net.live.search.api;//注意引用这个命名空间
引用不正确会提示错误
protected void OKBtn_Click(object sender, EventArgs e)
{
// LiveSearchService implements IDisposable.
using (LiveSearchService service =new LiveSearchService())//注意实例化这个服务
{
try
{
SearchRequest request = BuildRequestWeb();
{
// LiveSearchService implements IDisposable.
using (LiveSearchService service =new LiveSearchService())//注意实例化这个服务
{
try
{
SearchRequest request = BuildRequestWeb();
// Send the request; display the response.
SearchResponse response = service.Search(request);//调用webservice的search方法
DisplayResponseWeb(response);//显示返回来的结果
}
catch (System.Net.WebException ex)
{
// An exception occurred while accessing the network.
Console.WriteLine(ex.Message);
}
}
}
SearchResponse response = service.Search(request);//调用webservice的search方法
DisplayResponseWeb(response);//显示返回来的结果
}
catch (System.Net.WebException ex)
{
// An exception occurred while accessing the network.
Console.WriteLine(ex.Message);
}
}
}
private SearchRequest BuildRequestWeb()
{
SearchRequest request = new SearchRequest();
{
SearchRequest request = new SearchRequest();
// Common request fields (required)
//设置searchrequest的相关参数
request.Query = Key.Text;//获取查询内容的关键字
request.Sources = new SourceType[] { SourceType.Web };//设置是服务返回的内容类型,是网页
request.AppId = "*****************************";//这个要自己到bing网站去注册获取一个Appid,由于我用的是老师的id,所以不便把它贴出来
// Common request fields (optional)
request.Version = "2.0";
request.Market = "zh-CN";//设置返回结果以中文形式显示
request.Adult = AdultOption.Moderate;
request.AdultSpecified = true;
request.Options = new SearchOption[]
{
SearchOption.EnableHighlighting
};
//设置searchrequest的相关参数
request.Query = Key.Text;//获取查询内容的关键字
request.Sources = new SourceType[] { SourceType.Web };//设置是服务返回的内容类型,是网页
request.AppId = "*****************************";//这个要自己到bing网站去注册获取一个Appid,由于我用的是老师的id,所以不便把它贴出来
// Common request fields (optional)
request.Version = "2.0";
request.Market = "zh-CN";//设置返回结果以中文形式显示
request.Adult = AdultOption.Moderate;
request.AdultSpecified = true;
request.Options = new SearchOption[]
{
SearchOption.EnableHighlighting
};
// Web-specific request fields (optional)
request.Web = new WebRequest();
request.Web.Count = 10;
request.Web.CountSpecified = true;
request.Web.Offset = 0;
request.Web.OffsetSpecified = true;
request.Web.Options = new WebSearchOption[]
{
WebSearchOption.DisableHostCollapsing,
WebSearchOption.DisableQueryAlterations
};
request.Web = new WebRequest();
request.Web.Count = 10;
request.Web.CountSpecified = true;
request.Web.Offset = 0;
request.Web.OffsetSpecified = true;
request.Web.Options = new WebSearchOption[]
{
WebSearchOption.DisableHostCollapsing,
WebSearchOption.DisableQueryAlterations
};
return request;
}
private void DisplayResponseWeb(SearchResponse response)
{
// Display the results header.
ListBox1.Items.Add("Bing API Version " + response.Version);
ListBox1.Items.Add("Web results for " + response.Query.SearchTerms);
ListBox1.Items.Add(string.Format("Displaying {0} to {1} of {2} results",
response.Web.Offset + 1,
response.Web.Offset + response.Web.Results.Length,
response.Web.Total));
{
// Display the results header.
ListBox1.Items.Add("Bing API Version " + response.Version);
ListBox1.Items.Add("Web results for " + response.Query.SearchTerms);
ListBox1.Items.Add(string.Format("Displaying {0} to {1} of {2} results",
response.Web.Offset + 1,
response.Web.Offset + response.Web.Results.Length,
response.Web.Total));
// Display the Web results.
System.Text.StringBuilder builder = new System.Text.StringBuilder();
foreach (WebResult result in response.Web.Results)
{
builder.Length = 0;
builder.AppendLine(result.Title);
builder.AppendLine(result.Description);
builder.AppendLine(result.Url);
builder.Append("Last Crawled: ");
builder.AppendLine(result.DateTime);
System.Text.StringBuilder builder = new System.Text.StringBuilder();
foreach (WebResult result in response.Web.Results)
{
builder.Length = 0;
builder.AppendLine(result.Title);
builder.AppendLine(result.Description);
builder.AppendLine(result.Url);
builder.Append("Last Crawled: ");
builder.AppendLine(result.DateTime);
ListBox1.Items.Add(builder.ToString());
Console.WriteLine();
}
}
Console.WriteLine();
}
}
转载于:https://blog.51cto.com/acually/269936