📄 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 + -