在ASP.NET Web Application中通过SOAP协议调用Bing搜索服务
本文介绍了如何在ASP.NET Web Application中将Bing搜索作为Web Service来使用,并通过HTTP的SOAP协议在ASP.NET Web Application中调用Bing搜索功能。当然,我们也可以使用XML和JSON来调用Bing搜索服务,稍后会给出一些相关的例子。
本文中我将向大家演示下面这些内容:
- 创建一个Web Application与Bing搜索服务进行交互
- 添加Bing搜索服务的引用
- 使用Bing SourceTypes演示在线搜索功能
Bing搜索服务介绍
将Bing搜索功能作为Web Service来使用可以在我们的应用程序中简化许多较为复杂的功能,如创建索引、建立相关逻辑、解决数据存储等问题,本文旨从在你的应用程序中添加Bing Web Service开始。
什么是Web Service,想必大家都已经比较清楚了,它是Web Server上的一个程序组件,能够被客户端应用程序通过HTTP协议在Web上进行调用。有关Web Service的详细介绍,你可以查看MSDN上的文章Using ASP.NET Web Services.
使用Bing搜索服务你可以在你的程序中集成下列功能:
- 从Internet上获取有用的信息
- 在你的应用程序中添加广告内容
- 提高和增强搜索功能
- 查找特定位置信息
- 翻译条款和文本块
你可以通过Bing API来调用Bing Service的各种功能。上面提到的这些功能都或多或少地使用到了Bing API SourceTypes。一个SourceType是一个可以通过Bing API进行访问的信息源,有关所有这些SourceTypes的描述可以访问MSDN:About the Bing API。
先决条件
要完成本文中提到的这些功能,你必须具备下面这些条件:
- Visual Studio 2010(稍低版本的VS也可以,如Visual Studio 2008)
- 能够通过SOAP协议(1.1)和HTTP协议(1.1)向服务器端发送请求
- 能够解析SOAP和XML
创建Web Application
现在我们开始展示如何创建一个Web Application并使用Bing搜索服务。
首先打开Visual Studio并创建一个普通的Web Application工程。如果你使用的是Visual Studio 2010,建议创建ASP.NET Empty Web Application类型的工程。
然后我们需要在工程中添加Bing Search Service的Web引用。我们通过Web Service发现程序以获得Web服务的位置和描述信息,在Visual Studio中,Web Service发现程序是一个WSDL(Web Services Description Language)格式的XML文件,用来从Web站点中找到Web服务的描述信息。当我们在工程中添加Web引用时,Visual Studio会生成一个代理类,用来提供Web服务的本地描述,从而允许客户端代码可以直接调用Web Service提供的功能。你可以通过代理类来调用Web Service提供的方法,代理类会负责在客户端应用程序和Web Service之间进行通信。下面是在Visual Studio中添加Web引用到Web Application的步骤:
打开Solution Explorer,右键点击项目名称,在弹出的上下文菜单中选择Add Web Reference。
![]()
在弹出的对话框中输入http://api.search.live.net/search.wsdl,点击Go。
如果连接成功,你应该会看到有一个服务“search”被找到,点击Add Rederence按钮添加该Web引用到工程中。
浏览Solution Explorer面板,你会发现多了一个Web Reference文件夹,里面有live search service的API,双击它可以在Object Browser窗口中查看命名空间和对象。
同时,Web.config文件也会被修改,其中包含了soap.asmx服务的引用地址,如:
<applicationSettings>
<BingSearchDemo.Properties.Settings>
<setting name="BingSearchDemo_net_live_search_api_LiveSearchService"
serializeAs="String">
<value>http://api.search.live.net:80/soap.asmx</value>
</setting>
</BingSearchDemo.Properties.Settings>
</applicationSettings>
使用Bing ServiceTypes进行搜索
我们可以选择不同的Bing ServiceType进行在线搜索,下面是两种比较简单的应用类型:
- Web:从Internet获取信息。
- Phonebook:查找特定位置信息。
如何选择ServiceType呢?在BingSearchDemo.net.live.search.api命名空间下可以找到SourceType枚举对象,它下面包含了所有可能的SourceType枚举类型,如Ad、Image、InstantAnswer、MoibleWeb、News、Phonebook、QueryLocation、RelatedSearch、Showtimes、Spell、Translation、Video、Weather、Web、XRank。下面有两个类,分别使用SourceType.Web类型和SourceType.Phonebook类型:
UsingWebCourceType
UsingPhonebookSourceType
代码中使用的AppId需要去Bing Developer Center申请(免费),上面的AppId是我在测试代码的时候申请的,应该可以使用。接下来我们需要在工程中创建两个Web Page来测试这两个类,下面是这两个页面的测试代码(HTML & C#):
WebSourceType.aspx
WebSourceType.aspx.cs
PhonebookSourceType.aspx
PhonebookSourceType.aspx.cs
下面是在我机器上使用上面两种类型执行查询的结果:
![]()
![]()
Bing Search Service API的详细介绍和SDK文档可以去Bing Developer Center,本文给出的例子在这里下载。
在ASP.NET Web Application中通过SOAP协议调用Bing搜索服务的更多相关文章
- ASP.NET Web Application中使用链接文件
最近重构一个内部的平台系统,作为一个平台,其下有几个子系统,每个子系统有自己的网站系统.而每个网站使用的是统一的风格,统一的验证机制,反馈系统,等等.所以,为了避免几个子系统中重复出现相同的资源或文件 ...
- ASP.NET web application中的redirect
在开发ASP.NET MVC web application过程中,开发上线了新系统后,需要把老系统的url redirect新系统下 其中在项目系统目录下有一个文件 301RedirectsPage ...
- ASP.NET Web网站中App_Code文件夹的作用及使用场景
原文地址:Web Site项目和ASP.NET Web Application中App_Code文件夹的作用作者:宾的宾 我现在要建一个ASP.NET的网站了,不难吧,开始动手.如下图: 这种方法建立 ...
- 【ASP.NET Web API教程】4.3 ASP.NET Web API中的异常处理
原文:[ASP.NET Web API教程]4.3 ASP.NET Web API中的异常处理 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内 ...
- ASP.NET Web API中实现版本的几种方式
在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的contr ...
- 如何在 ASP.Net Web Forms 中使用依赖注入
依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模 ...
- 如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites]
如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites] 一.布局页面介绍[Abo ...
- ASP.NET Web API中的Controller
虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要 ...
- You may receive an exception when you browse a .NET Framework 2.0 ASP.NET Web application
SYMPTOMS When you browse a Microsoft .NET Framework 2.0 ASP.NET Web application, you may receive one ...
随机推荐
- java高级---->Thread之Phaser的使用
Phaser提供了动态增parties计数,这点比CyclicBarrier类操作parties更加方便.它是jdk1.7新增的类,今天我们就来学习一下它的用法.尘埃落定之后,回忆别来挑拨. Phas ...
- Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源
时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了.旧版本1:http://www.qtcn.org/bbs/ ...
- HTTP协议剖析 (附HttpWatch工具监控网络请求)
工具:HttpWatch Prov7.2.13破解版(带正版key) HTTP协议概述 思考2个要点: 第一:浏览器和服务器是通过什么连接的 第二:这种连接方式是怎么实现的 通过Interne ...
- 部署OpenStack问题汇总(六)-- OpenStack入门需要知道的概念
本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. 一.网络问题-network 更多网络原理机制可以参考<OpenStack ...
- 【咸鱼教程】TextureMerger1.6.6 一:Egret MovieClip的制作和使用
几个月没写代码了.然后突然用到TextureMerger,发现不会用序列图做动画了... 于是写下过程,以防忘记... MovieClip主要是用于游戏中的动画制作和播放.支持swf.gif.序列图等 ...
- Windows任务计划的设置
需求:因为要定时跑一些exe的小程序,来定时执行项目内的某段代码.所以需要建一个任务计划 1. 2. 3.
- iOS - 开源框架、项目和学习资料汇总(UI篇)
上下拉刷新控件 1. MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.(推荐)2. SV ...
- python3安装builtwith
>>> import builtwith Traceback (most recent call last): File , in <module> File excep ...
- Shell while
while commanddo ...done c=0while [ $c -lt 5 ]do c='expr $c+1' echo $cdone
- 美团店铺评价语言处理以及文本分类(logistic regression)
美团店铺评价语言处理以及分类(LogisticRegression) 第一篇 数据清洗与分析部分 第二篇 可视化部分, 第三篇 朴素贝叶斯文本分类 本文是该系列的第四篇 主要讨论逻辑回归分类算法的参数 ...