?? friendsinfo.java
字號:
/* * @(#) FriendsInfo.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.utility.chat;//導入核心Java類庫import java.io.IOException;import java.io.StringReader;import java.net.MalformedURLException;import java.util.List;import java.util.Vector;import java.util.ArrayList;import javax.swing.JOptionPane;//導入自定義Java類庫import hws.item.smart.Smart;import hws.item.smart.misc.XMLConfig;import hws.item.smart.misc.StringShop;//導入第三方Java類庫import org.jdom.Element;import org.jdom.Document;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;import org.jdom.output.XMLOutputter;import org.apache.xmlrpc.XmlRpc;import org.apache.xmlrpc.XmlRpcClient;import org.apache.xmlrpc.XmlRpcRequest;import org.apache.xmlrpc.XmlRpcException;/** * 好友信息 * * @version 0.1 2005-08-22 * @author Hwerz */public class FriendsInfo extends Object { /*------------------------------------------------------------------------* * 屬性定義 * *------------------------------------------------------------------------*/ /** * 好友列表,實際存放的是好友的ID */ private List friends; /*------------------------------------------------------------------------* * 構造函數 * *------------------------------------------------------------------------*/ /** * Create a new instance of this class */ public FriendsInfo() { super(); friends = new ArrayList(); } /*------------------------------------------------------------------------* * 公共方法 * *------------------------------------------------------------------------*/ /** * 將指定的Friends元素轉換成FriendsInfo對象 * * @param friends 指定的Friends元素 * @return 轉換后的FriendsInfo對象 */ public static FriendsInfo friendsElement2FriendsInfo(Element friends) { FriendsInfo friendsInfo = new FriendsInfo(); List children = friends.getChildren(); for (int i = 0; i < children.size(); i++) { Element friend = (Element) children.get(i); friendsInfo.addFriend(friend.getAttributeValue("id")); } return friendsInfo; } /** * 返回指定好友的IP地址 * * @param id 指定好友的ID * @return 指定好友的IP地址 */ public static String getFriendIP(String id) { String ip = null; try { XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser"); XmlRpcClient client = new XmlRpcClient(genURL()); String response = client.execute(genRequest(id)).toString(); SAXBuilder builder = new SAXBuilder(); StringReader reader = new StringReader(response); Document document = builder.build(reader); Element root = document.getRootElement(); ip = root.getChild("IP").getText(); } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(Smart.getInstance(), "系統找不到類庫“org.apache.xerces.parsers.SAXParser”!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } catch (MalformedURLException e) { e.printStackTrace(); } catch (XmlRpcException e) { e.printStackTrace(); } catch (IOException e) { JOptionPane.showMessageDialog(Smart.getInstance(), "用戶服務已關閉,請稍候再試!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } catch (JDOMException e) { e.printStackTrace(); } return ip; } /** * 返回所有好友 * * @return 所有好友 */ public List getAllFriends() { return friends; } /** * 添加好友 * * @param id 待添加好友的ID */ public void addFriend(String id) { friends.add(id); } /*------------------------------------------------------------------------* * 私有方法 * *------------------------------------------------------------------------*/ /** * 生成請求URL * * @return 生成的請求URL */ private static String genURL() { StringBuffer url = new StringBuffer(); url.append("http://"); url.append(XMLConfig.getServicesIP()); url.append(":"); url.append(XMLConfig.getAddressPort()); url.append("/"); return url.toString(); } /** * 生成XML-RPC請求消息 * * @param id 指定好友的ID * @return 生成的XML-RPC請求消息 */ private static XmlRpcRequest genRequest(String id) { //請求方法 StringBuffer method = new StringBuffer(); method.append(XMLConfig.getAddressClass()); method.append("."); method.append(XMLConfig.getAddressMethod()); //請求參數 Vector params = new Vector(); XMLOutputter outputter = new XMLOutputter(); params.addElement(outputter.outputString(genDocument(id))); return new XmlRpcRequest(method.toString(), params); } /** * 生成XML文檔 * * @param id 指定用戶的ID * @return 生成的XML文檔 */ private static Document genDocument(String id) { Element request = new Element("Request"); Element level1 = new Element("ID"); level1.setText(id); request.addContent(level1); return new Document(request); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -