一、前言
最近发现百度搜索引擎搜索自己网站有点慢,于是登录到百度站长后台手动提交一批最新的文章链接地址,由于本人尽力有限,想通过后台程序随着网站新文章的发布自动提交对应连接到百度提交接口,于是今天实现了该功能,同时分享出部分源代码。
二、实现步骤
1. 现在百度站长http://zhanzhang.baidu.com申请账号,成功登录后,点击“链接提交”,如下图所示
2. 拖到下面区域,如下图,看到“自动提交”和“手动提交”tab页标签,可以看到百度提供提交接口地址和报文格式
3. 示例代码如下
package com.xwood.search.chain;@b@@b@import java.io.BufferedReader;@b@import java.io.IOException;@b@import java.io.InputStreamReader;@b@import java.io.PrintWriter;@b@import java.net.URL;@b@import java.net.URLConnection;@b@@b@public class UrlConnectDispatcher {@b@ /** @b@ * 百度链接实时推送 ,详情使用参加下面main方法测试示例@b@ * @param PostUrl 上图中标记1的网站提交地址@b@ * @param Parameters 需要提交内容文章链接数组@b@ * @return 结果json格式@b@ */ @b@ public static String Post(String PostUrl,String[] Parameters){ @b@ if(null == PostUrl || null == Parameters || Parameters.length ==0){ @b@ return null; @b@ } @b@ String result=""; @b@ PrintWriter out=null; @b@ BufferedReader in=null; @b@ try { @b@ //建立URL之间的连接 @b@ URLConnection conn=new URL(PostUrl).openConnection(); @b@ //设置通用的请求属性 @b@ conn.setRequestProperty("Host","data.zz.baidu.com"); @b@ conn.setRequestProperty("User-Agent", "curl/7.12.1"); @b@ conn.setRequestProperty("Content-Length", "83"); @b@ conn.setRequestProperty("Content-Type", "text/plain"); @b@ @b@ //发送POST请求必须设置如下两行 @b@ conn.setDoInput(true); @b@ conn.setDoOutput(true); @b@ @b@ //获取conn对应的输出流 @b@ out=new PrintWriter(conn.getOutputStream()); @b@ //发送请求参数 @b@ String param = ""; @b@ for(String s : Parameters){ @b@ param += s+"\n"; @b@ } @b@ out.print(param.trim()); @b@ //进行输出流的缓冲 @b@ out.flush(); @b@ //通过BufferedReader输入流来读取Url的响应 @b@ in=new BufferedReader(new InputStreamReader(conn.getInputStream())); @b@ String line; @b@ while((line=in.readLine())!= null){ @b@ result += line; @b@ } @b@ } catch (Exception e) { @b@ System.out.println("发送post请求出现异常!"+e); @b@ e.printStackTrace(); @b@ } finally{ @b@ try{ @b@ if(out != null){ @b@ out.close(); @b@ } @b@ if(in!= null){ @b@ in.close(); @b@ } @b@ @b@ }catch(IOException ex){ @b@ ex.printStackTrace(); @b@ } @b@ } @b@ return result; @b@ } @b@ @b@ public static void main(String[] args){@b@ Post("http://data.zz.baidu.com/urls?site=www.xwood.net&token=Rh141243333 ",new String[]{"http://www.xwood.net/_site_domain_/_root/5870/5874/t_c262607.html"});@b@ } @b@}