将雅虎的搜索添加到自己的WEB项目中

本文展示了一个使用Java Servlet实现的Yahoo搜索WebService示例代码。该示例通过HTTP GET请求发送用户的查询关键字到Yahoo搜索服务,并将返回的XML格式搜索结果编码为UTF-8后输出给客户端。

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
   
//定义Yahoo的搜索Web Service的访问URL的基本部分
    String baseUrl = "http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&ei=gb2312&type=all";
   
//获得客户的查询关键字
    String query = request.getParameter("query");
   
//对query进编码转换
    query = new String(query.getBytes("ISO8859-1"),"gb2312");
   
//对query进URL编码
    query = URLEncoder.encode(query,"gb2312");
   
//构造出查询关键字参数
    query = "&query="+query;
   
//获得客户的记录数
    String results = request.getParameter("results");
   
//构造出记录数参数
    results = "&results="+results;   
   
//构造出完整的URL
    String url = baseUrl+query+results;
   
//建立一个HttpURLConnection对象进行搜索
    HttpURLConnection con = (HttpURLConnection)new URL(url).openConnection();
   
//设置HttpURLConnection对象的访问方法
    con.setRequestMethod("GET");
       
   
//将查询的结果以XML文档返回给客户端
    response.setContentType("text/xml");
    response.setCharacterEncoding(
"UTF-8");
    PrintWriter out
= response.getWriter();
   
//建立一个BufferedReader对象读取查询结果
    BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
    String line
= null;
   
//一行一行地读取查询结果
    while ((line = reader.readLine())!=null){
       
//对读取的数据进行编码转换
        line = new String(line.getBytes(),"gb2312");
        out.println(line);
    }
    out.flush();
    out.close();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值