新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Gmail,Google阅读器,Google桌面,Google笔记本,Google文件,Google地图,Google地球,Google邀请
    [返回] 中文XML论坛 - 专业的XML技术讨论区Android开发论坛『 Google 应用 』 → 使用Google的Web Service [转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 11669 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 使用Google的Web Service [转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Google 应用 』 的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 使用Google的Web Service [转帖]

    http://www.daima.com.cn/Info/85/Info30450/

    一、简介
    Google搜索引擎提供了基于SOAP的Web Service。这意味着不同的开发语言、开发环境都能够使用这种服务,另外,Google为了简化Java程序员的开发,它还提供了一套Java API接口,用于访问Web Serivce,这使得开发一套支持Google搜索功能的程序变得十分容易。开发人员可以将Google的搜索功能嵌入到他们的应用程序当中。本文将介绍如何使用这些Java API,以及如何使用google的Web Service。
    目前,Google的API还是处于Beta测试阶段,因此,在API的使用上还有一些限制。例如,使用这些API需要申请一个帐号。对于免费申请的帐号,为了防止开发人员不正当的使用,限制每个帐号、每天最多只能查询1000次。目前,Google还没有提出正式的运营模式和收费方式。
    Google API目前主要提供三种服务,分别如下:
    1)搜索服务。用户提交一个搜索内容请求,Google服务器将查找超过20亿的网页内容,并且将满足用户需求的目标返回给用户,一般来说这种处理只需要几秒的时间。
    2)缓存服务(Cache)。用户提交一个URL,Google服务器将返回搜索器访问该URL的最新记录。这样,用户很容易复用Google的搜索成果。
    3)拼写检查。该功能用于检查用户的查询请求是否有效。用户提交一个检查内容,Google服务器将返回有效的、最接近该内容的查询请求,返回的查询请求将符合Google的查询规则。

    二、相关准备工作
    为了开发基于Java的程序,我们需要作如下准备工作。
    1)建立Java开发环境,Java SDK 1.3.1 或更新的版本。相关地址http:.//java.sun.com/J2SE
    2)下载Google API的Jar文件,Googleapi.jar。开发人员可以到http://www.google.com/apis下载。
    3)申请Google访问帐号,目前Google支持免费申请的方式,用户需要使用一个email帐号来获取新帐号。注意,目前免费帐号支持每天1000条的最大查询量。申请地址:http://www.google.com/apis。
    4)(可选) 如果用户需要通过Java程序直接发送SOAP请求,开发人员需要下载相关的Java 软件包,JAXM。下载地址:http://java.sun.com/xml

    三、SOAP的使用
    Google提供了基于SOAP的Web Service,因此用户可以向Google服务器提交SOAP的查询请求,而后Google服务器将处理这些请求,并返回SOAP格式的查询结果。以下就是一个查询请求和查询结果。
    查询:例如,有一个查询请求,请求类型为搜索,查询的内容为“world cup”,帐号为“123456789”,如下为该查询的一个例子。
    <?xml version=''1.0'' encoding=''UTF-8''?>
    <SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    <SOAP-ENV:Body>
    <ns1: doGoogleSearch xmlns:ns1="urn:GoogleSearch"
    SOAP-ENV:encodingStyle=
    "http://schemas.xmlsoap.org/soap/encoding/">
    <key xsi:type="xsd:string">123456789</key>
    <q xsi:type="xsd:string">"World Cup"</q>
    <start xsi:type="xsd:int">0</start>
    <maxResults xsi:type="xsd:int">10</maxResults>
    <filter xsi:type="xsd:boolean">true</filter>
    <restrict xsi:type="xsd:string"></restrict>
    <safeSearch xsi:type="xsd:boolean">false</safeSearch>
    <lr xsi:type="xsd:string"></lr>
    <ie xsi:type="xsd:string">latin1</ie>
    <oe xsi:type="xsd:string">latin1</oe>
    </ns1: doGoogleSearch >
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    查询结果:如果我们执行以上查询,可以得到如下的查询结果。其中,查询结果总共有约2660000记录,使用时间为0.125012秒。Item标记代表一条查询结果,在第一条查询结果中,网站的URL为http://www.fifaworldcup.com。本例子仅仅列举了一条查询结果。

    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    <SOAP-ENV:Body>
    <ns1:doGoogleSearchResponse
    xmlns:ns1="urn:GoogleSearch"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <return xsi:type="ns1:GoogleSearchResult">
    <documentFiltering xsi:type="xsd:boolean">false</documentFiltering>
    <estimatedTotalResultsCount xsi:type="xsd:int">
    2660000</estimatedTotalResultsCount>
    <directoryCategories
    xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/"
    xsi:type="ns2:Array"
    ns2:arrayType="ns1:DirectoryCategory[0]">
    </directoryCategories>
    <searchTime xsi:type="xsd:double">0.125012</searchTime>
    <resultElements
    xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/"
    xsi:type="ns3:Array" ns3:arrayType="ns1:ResultElement[10]">

    <item xsi:type="ns1:ResultElement">
    <cachedSize xsi:type="xsd:string">10k</cachedSize>
    <hostName xsi:type="xsd:string"/>
    <snippet xsi:type="xsd:string"></snippet>
    <directoryCategory xsi:type="ns1:DirectoryCategory">
    <specialEncoding xsi:type="xsd:string"/>
    </directoryCategory>
    <relatedInformationPresent xsi:type="xsd:boolean">
    true
    </relatedInformationPresent>
    <summary xsi:type="xsd:string">
    The official site from FIFA, made by Yahoo. Daily news updates and loads of relevant information.
    </summary>
    <URL xsi:type="xsd:string">
    http://www.fifaworldcup.com
    </URL>
    <title xsi:type="xsd:string">
    2002 FIFA <b>World</b>b>Cup</b>(tm)
    </title>
    </item>
    ...
    </resultElements>
    <endIndex xsi:type="xsd:int">10</endIndex>
    <searchTips xsi:type="xsd:string"/>
    <searchComments xsi:type="xsd:string"/>
    <startIndex xsi:type="xsd:int">1</startIndex>
    <estimateIsExact xsi:type="xsd:boolean">false</estimateIsExact>
    <searchQuery xsi:type="xsd:string">
    "science fiction"
    </searchQuery>
    </return>
    </ns1:doGoogleSearchResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>


    四、使用Google API
    Google为了提高开发人员的开发效率,提供了一套基于Java的API,用于直接访问Google服务器。该API包装了Google的Web Service,使用起来比Web Service更加方便。该API 包主要包括如下几个类:
    GoogleSearch :该类封装了对于Google服务器的访问,支持搜索和缓存(cache)功能。
    GoogleSearchDirectoryCategory :表示Google中的一个分类目录
    GoogleSearchFault :该类为Exception的一个子类,用于表示API使用的错误。
    GoogleSearchResult :该类封装了搜索的结果。
    GoogleSearchResultElement:该类表示搜索结果中的每一条记录。

    如下是一个例子的源代码,用于一个简单查询,查询请求为”world Cup”,查询的帐号为”123456789”。该例子将把查询结果打印出来。如果用户需要近一步解析查询结果,可以使用GoogleSearchResult和GoogleSearchResultElement类。

    import com.google.soap.search.*;
    import java.io.*;

    public class GoogleAPITest {

    public static void main(String[] args) {

    String clientKey="123456789";
    String query="Word Cup";
    // Create a Google Search object, set our authorization key
    GoogleSearch s = new GoogleSearch();
    s.setKey(clientKey);
    try {
    s.setQueryString(query);
    GoogleSearchResult r = s.doSearch();
    System.out.println("Google Search Results:"+t.toString());
    } catch (GoogleSearchFault f) {
    System.out.println("The call to the Google Web APIs failed:"+f.toString());
    }
    }
    }

    五、总结
    Google搜索引擎提供了搜索、缓存和拼写简单功能,通过Web Service可以在不同的平台、不同的语言使用,为了简化SOAP的开发,Google还提供了包装了SOAP服务的Java API,这也大大提高了Java程序员的开发效率。随着搜索内容、形式的丰富,更多的开发人员可以将这种技术运用在自己应用程序中,扩展应用程度的功能。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/14 17:27:00
     
     prospring 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:1
      积分:59
      门派:XML.ORG.CN
      注册:2006/2/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给prospring发送一个短消息 把prospring加入好友 查看prospring的个人资料 搜索prospring在『 Google 应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看prospring的博客2
    发贴心情 
    使用 Web API 只能返回搜索结果的前10个,您知道怎样能获得全部或者大多数的结果吗?请您指教
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/28 22:27:00
     
     jclser 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:110
      门派:XML.ORG.CN
      注册:2006/3/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jclser发送一个短消息 把jclser加入好友 查看jclser的个人资料 搜索jclser在『 Google 应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看jclser的博客3
    发贴心情 
    真不错。。。

    ----------------------------------------------
    My little site: ifairy.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/3/30 17:33:00
     
     taojun318 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:58
      门派:XML.ORG.CN
      注册:2006/4/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给taojun318发送一个短消息 把taojun318加入好友 查看taojun318的个人资料 搜索taojun318在『 Google 应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看taojun318的博客4
    发贴心情 
    很不错啊!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/23 8:03:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Google 应用 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/18 8:25:20

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    7,029.297ms