`
wangjinshan1314
  • 浏览: 8511 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

json 调用 Google 图片搜索

阅读更多


/*****************************************/
使用Google Ajax API 来实现图片的搜索功能:在实现的过程中要用到的技术有:Jquery,json 等技术

/*************************************************************/
jsp页面:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">


    $(function(){

       //当单击提交按钮的时候,进行异步请求查询数据
$("#bt").click(function(){
//进行post方法来异步请求
   $.get("JsonServlet",
{imageName:encodeURI($("#imageName").val(),"utf-8"),imageSource:$("input[name=iamgeSource]:checked").val()},
   function(returnedData,status){
$("#showPic").empty();
var html="";
for(var i=0;i<returnedData.length;i++){

html +="<img src='"+returnedData[i]+"' width='150' height='150'/>";
}
$("#showPic").append(html);

   }

   );
});
$("#save").click(function(){

   $("#pro").html("<font color='red'>processing....</font>");

          $.post("SaveImageServlet",null,function(returnedData,result){


alert(returnedData);

});

});

     });

</script>
  </head>
 
  <body>
    
     <input type="text" id="imageName" />
     <input type="radio" name="iamgeSource" value="google"  checked="checked" />google
     <input type="radio" name="iamgeSource" value="flickr"/>flickr
     <br/>
     <input type="button" id="bt" value="提交"/>
     <input type="button" id="save" value="保存"/>
     <div id="pro"></div>
    
     <div id="showPic"></div>




/*****
*使用dopost来接受参数,并返回图片路径
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
             
PrintWriter out = response.getWriter();
        String imageName=URLDecoder.decode(request.getParameter("imageName"),"utf-8");
        String imageSource=request.getParameter("imageSource");
        HttpSession session=request.getSession();

        try {
       
        //存储向客户端发送的url
        List<String> returnList=new ArrayList<String>();
            session.setAttribute("iamgeName", imageName);
            session.setAttribute("picSource", imageSource);
            session.setAttribute("images",returnList);
        //判断用户使用的是什么搜索
        if("google".equals(imageSource)){      
            //存储每次从Google货到的json数据
            List<String> lists=new ArrayList<String>();
           
            for(int i=0;i<4;i++){
            String queryStr=new StringBuffer(Contant.GOOGLE_URL)
            .append("q=").append(imageName)
            .append("&start=").append(8*i).toString();
            lists.add(NetwordUtil.getStringContentFromURL(queryStr));
            }
            for(String result:lists){
            JSONObject jsonContent=new JSONObject(result);
            JSONObject responseData=jsonContent.getJSONObject("responseData");
            JSONArray results=responseData.getJSONArray("results");//获得results数据
            for(int i=0;i<results.length();i++){
           
            JSONObject jsonObject=results.getJSONObject(i);//获得第i个对象
            String url=jsonObject.getString("url");
           
            returnList.add(url);
           
            }         
            }
           
        }else{
        System.out.println("filics");
       
       
        }
          Gson gson=new Gson();
         
          String jsonResult=gson.toJson(returnList);
          response.setContentType("application/json;charset=utf-8");
          response.setHeader("pragma","no-cache");
          response.setHeader("cache-control","no-cache");
          out.print(jsonResult);
         
} catch (Exception e) {
// TODO: handle exception
}
       

out.flush();
out.close();
}

/**********************************************************/
在调用的时候要住的是一个google的链接字符串
    public static String GOOGLE_URL="https://ajax.googleapis.com/ajax/services/search/images?key=ABQIAAAATqqFqs7EA6jhOIdd5baQSBR1OFzB8QaN0RkKyqZMsix3w73wyBRuPkw-_I8d5TLsv6PvoKsXmxpv4Q&rsz=large&v=1.0&" ;
}
    必须自己申请一个key
    https://ajax.googleapis.com/ajax/services/search/images
    搜索images文件的位置:
     Key :API KEY
    rsz:表示图片大小
     v:表示版本号
   在保存图片的时候使用单线程调用
       public static String getStringContentFromURL(String queryString) throws Exception{
   //定义url对象
   URL url=new URL(queryString);
   //获得urlConnection对象
   URLConnection conn=url.openConnection();
   //打开输入流
   InputStream is=conn.getInputStream();
   //获得字符输入流
   InputStreamReader isr=new InputStreamReader(is);
   //转换成bufferedReader缓冲流
   BufferedReader br=new BufferedReader(isr);
   StringBuffer buffer=new StringBuffer();
   String line=null;
   while(null!=(line=br.readLine())){
  
   buffer.append(line);
   }
   br.close();
   isr.close();
   is.close();
   return buffer.toString();
  
   }
   也可以使用外部的文件上传的插件来实现
  如果要用到线程的方法来保存图片的时候,可以根据自己的需要来设置!
/***************************************************************/
分享到:
评论

相关推荐

    Jquery调用Google搜索API实现搜索引擎.rar

    这个“Jquery调用Google搜索API实现搜索引擎.rar”文件包含了一个使用jQuery来调用Google搜索API的插件,使得开发者可以快速、方便地在自己的网页中集成一个搜索引擎。 首先,我们来看主要的组件: 1. **script.js*...

    java json调用常包

    Java JSON调用常用包主要涉及的是在Java编程中处理JSON数据的相关库和技术。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Web服务和客户端之间的数据交互。在Java中,有多个流行的库...

    Ajax+JSON 模拟谷歌搜索页面

    **Ajax+JSON 模拟谷歌搜索页面** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。JSON...

    谷歌建议搜索(googlesuggestion)ajax,json实现方式搜索建议

    这通常涉及到数据库查询或调用谷歌公开的API(如Google Custom Search API)。 4. **JSON响应**:服务器返回的JSON数据应包含一个数组,每个元素都是一个搜索建议的字符串。例如: ```json ["Google", "Google Maps...

    C#调用google搜索服务的源码示例(winform)

    为了调用Google搜索服务,你需要在Google Developers Console上创建一个项目,并启用Custom Search JSON API。然后,你需要获取一个API密钥和一个自定义搜索引擎ID。API密钥用于验证请求,而自定义搜索ID则定义了你...

    C#版谷歌翻译-调用谷歌web翻译

    在本文中,我们将深入探讨如何使用C#语言调用谷歌翻译API,实现文本的自动翻译功能,不依赖JavaScript算法,而是直接通过HTTP POST请求与谷歌Web翻译服务进行交互。我们将介绍核心概念、所需库和步骤,帮助你构建一...

    JQuery getJSON() 调用Servlet简单例子

    当服务器返回JSON数据时,这个回调函数会被调用。例如: ```javascript $.getJSON('url_to_servlet', {param1: 'value1'}, function(data) { // 在这里处理返回的JSON数据 console.log(data); }); ``` 在这个...

    C#调用google搜索服务的源码示例

    总的来说,C#调用Google搜索服务涉及了API的使用、HTTP请求的发送、JSON数据的解析等多个环节,是学习Web服务和网络编程的好例子。通过实践,你可以掌握如何利用API扩展C#应用程序的功能,接入更多的在线服务。

    Google图片搜索器

    "Google图片搜索器"是一款基于Google搜索引擎的工具,专门...总的来说,"Google图片搜索器"是将Google的搜索能力与用户友好的界面相结合的产物,涉及到了API调用、前端开发、后端处理、数据安全等多个IT领域的知识。

    C#调用google搜索服务的源码示例(winform)源码

    在本文中,我们将深入探讨如何使用C#编程语言在Windows Forms(winform)环境中调用Google搜索服务。这个示例代码提供了一种方法,通过集成Google的搜索API,实现从C#应用程序中进行网络搜索的功能。 首先,让我们...

    C++调用GOOGLEMAP代码

    标题 "C++调用GOOGLEMAP代码" 涉及到的是在C++程序中集成和使用Google Maps API的技术。Google Maps API是一个强大的工具,允许开发者在他们的应用程序中嵌入地图、路线规划、地理编码(地址转经纬度)等功能。在C++...

    google-maps-api-json.rar_Google Maps API_JSON_google json_google

    标题中的"google-maps-api-json.rar"表明这是一个关于Google Maps API与JSON数据交互的压缩文件。Google Maps API是Google提供的一项服务,允许开发者在自己的应用或网站上集成地图功能,进行地理位置相关的操作。...

    google 的JSON插件

    Google提供了多种与JSON相关的工具和插件,以帮助开发者更有效地处理JSON数据。在这个场景中,我们主要讨论的是“Google的JSON插件”,虽然没有提供具体的插件名称,但我们可以假设它涉及到解析、生成、验证或美化...

    jsonhandle,谷歌浏览器json插件

    在当前数字化时代,JSON(JavaScript Object Notation)已经成为网络应用间交换数据的一种常用格式,尤其是在API接口调用中。JSON-handle的出现,为开发者和数据分析师提供了直接在浏览器中解析和操作JSON数据的便捷...

    调用google搜索

    标题“调用google搜索”可能指的是使用编程接口或者技术手段来与Google的搜索服务进行交互,获取或展示搜索结果。这种技术通常用于自动化查询、数据分析或者构建自定义搜索引擎。在这个场景下,我们可以深入探讨以下...

    C#调用Google Map搜索服务程序

    本主题聚焦于如何利用C#调用Google Maps搜索服务,这是一个常见的需求,尤其是在地理位置相关的应用开发中。Google Maps API提供了丰富的功能,包括地图显示、定位、路线规划和搜索服务等。 首先,我们需要了解...

    基于Java调用谷歌翻译网络接口实现文章翻译功能.zip

    在本项目中,我们主要探讨如何使用Java编程语言来调用谷歌翻译(Google Translate)的网络接口,从而实现文章的翻译功能。这是一个典型的Web服务API集成应用,对于学习Java网络编程以及自然语言处理(NLP)技术具有...

    C#调用谷歌进行翻译

    在本文中,我们将深入探讨如何使用C#来调用谷歌的翻译API,实现中英文之间的自动翻译功能。 首先,我们需要了解谷歌翻译API的工作原理。谷歌翻译API提供了一种RESTful的服务接口,可以通过HTTP请求进行访问。这种...

    谷歌浏览器JSON格式化插件

    安装该插件的过程相对简单,只需通过谷歌浏览器的扩展程序管理页面,搜索“JSONView”或者使用提供的压缩包文件“JSONView-for-Chrome-master”。通常,下载并解压后,将解压得到的文件夹拖入到浏览器的扩展程序管理...

Global site tag (gtag.js) - Google Analytics