且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

关于JFinal_Blog 添加百度SiteMap服务Java代码bug修正

更新时间:2022-04-16 18:14:34

首先,很惭愧的告诉大家:于2014年6月2日发表的《JFinal_Blog 添加百度Ping和百度SiteMap服务》文章中提到的百度SiteMap代码存在逻辑调用错误,此bug已经修复并同步到了OSC和Github两大平台。

一、错误原因:
由于原先对于百度站长工具中的SiteMap方法是用有误读,今天登陆百度站长发现昨天提交的文章都出错了,于是仔细阅读,发现时调动方法参数传递错误(以前是无参,现在需要添加xml格式的参数)。

二、代码纠正如下:
1、百度SiteMap工具类方法:

package com.zcm.utils;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import com.jiangge.utils.DateUtils;

/**
 * 百度文章SiteMap工具
 * <p>Company:  91注册码</p>
 * time:2014-06-01
 * @author www.91zcm.com
 * @date 
 * @version 1.0
*/
public class SiteMapHttpUtils {

/**百度SiteMap地址**/
public static final String siteMapURL = "http://ping.baidu.com/sitemap?site=www.91zcm.com&resource_name=sitemap&access_token=lcrfZbBh";  

/**
* 百度SiteMap
* @param articleURL
*/
public static void postSiteMap(String articleURL) {  
        try {  
            URL url = new URL(siteMapURL);  
            URLConnection con = url.openConnection();  
            con.setDoOutput(true);  
            con.setRequestProperty("Pragma:", "no-cache");  
            con.setRequestProperty("Cache-Control", "no-cache");  
            con.setRequestProperty("Content-Type", "text/xml");  
            OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());      
            String xmlInfo = SiteMapHttpUtils.getXmlInfo(articleURL);  
            out.write(new String(xmlInfo.getBytes("ISO-8859-1")));  
            out.flush();  
            out.close();  
        } catch (MalformedURLException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  


/**
* 组装SiteMap需要的XML文件
* @param url
* @return
*/
private static String getXmlInfo(String url){
   StringBuffer xmlData = new StringBuffer("");
   xmlData.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
   xmlData.append("<urlset>");
   xmlData.append("<url>");
   xmlData.append("<loc><![CDATA[");
   xmlData.append(url);
   xmlData.append("]]></loc>");
   xmlData.append("<lastmod>");
   xmlData.append(DateUtils.getNowTime(DateUtils.DATE_SMALL_STR));
   xmlData.append("</lastmod>");
   xmlData.append("<changefreq>daily</changefreq>");
   xmlData.append("<priority>0.8</priority>"); 
   xmlData.append("</url>"); 
   xmlData.append("</urlset>");
   return xmlData.toString();
}
}

2、SiteMap方法调用参考如下:

/**添加到百度博客Ping中**/
String shareURL = "http://www.91zcm.com/" + category.getStr("url") + "/" + record.getInt("aid") + ".html";
PingUtils.pingBaidu(shareURL);
/**添加到百度SiteMap中**/
SiteMapHttpUtils.postSiteMap(shareURL);

三、JFinal_Blog相关地址:
1、Github下载:
JFinal_Blog地址:https://github.com/keaijohnee/91zcm
JCake 地址:https://github.com/keaijohnee/JCake

2、OSC下载:
JFinal_Blog地址:http://git.oschina.net/jianggege/jfinal_91zcm
JCake 地址:http://git.oschina.net/jianggege/JCake

3、演示站点:
91注册码:http://www.91zcm.com

四、代码更新说明:
原在OSC上的代码和Github上的代码同步更新;

在此,对于给使用和关注JFinal_Blog的朋友表示抱歉,感谢大家一如既往的关注和关心!