01: /*
02: * This program is free software; you can redistribute it and/or modify
03: * it under the terms of the GNU General Public License as published by
04: * the Free Software Foundation; either version 2 of the License, or
05: * (at your option) any later version.
06: *
07: * This program is distributed in the hope that it will be useful,
08: * but WITHOUT ANY WARRANTY; without even the implied warranty of
09: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10: * GNU Library General Public License for more details.
11: *
12: * You should have received a copy of the GNU General Public License
13: * along with this program; if not, write to the Free Software
14: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
15: */
16: package dlog4j.blog;
17:
18: import java.io.IOException;
19: import java.net.URLEncoder;
20:
21: import org.apache.commons.httpclient.HttpClient;
22: import org.apache.commons.httpclient.methods.GetMethod;
23: import org.xml.sax.SAXException;
24:
25: /**
26: * TrackBack客户端,该类在DlogLogAction的doAddLog中使用
27: * 用于引用其他网站的文章时调用
28: * @author Winter Lau
29: */
30: public class BlogTrackBack {
31:
32: /**
33: * 引用别的网站的文章
34: * @param refurl
35: * @param log_url
36: * @param blog_name
37: * @param title
38: * @param excerpt
39: * @return
40: * @throws IOException
41: * @throws SAXException
42: */
43: public static TrackBackResp track(String refurl, String log_url,
44: String blog_name, String title, String excerpt)
45: throws IOException, SAXException {
46: HttpClient client = new HttpClient();
47: StringBuffer sURL = new StringBuffer(refurl);
48: if (sURL.indexOf("?") == -1)
49: sURL.append('?');
50: else
51: sURL.append('&');
52: sURL.append("excerpt=");
53: sURL.append(URLEncoder.encode(excerpt, "UTF-8"));
54: sURL.append("&title=");
55: sURL.append(URLEncoder.encode(title, "UTF-8"));
56: sURL.append("&url=");
57: sURL.append(URLEncoder.encode(log_url, "UTF-8"));
58: sURL.append("&blog_name=");
59: sURL.append(URLEncoder.encode(blog_name, "UTF-8"));
60: GetMethod get = new GetMethod(sURL.toString());
61: client.executeMethod(get);
62: try {
63: return TrackBackResp.parse(get.getResponseBodyAsStream());
64: } finally {
65: get.releaseConnection();
66: }
67: }
68:
69: public static void main(String[] args) throws IOException,
70: SAXException {
71: TrackBackResp resp = track(
72: "http://localhost:8080/dlog/trackback.do?log_id=458",
73: "http://www.javayou.com", "Java自由人", "测试标题",
74: "测试概要");
75: System.out.println(resp);
76: }
77: }
|