`
KG21
  • 浏览: 107590 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用java导出Msn好友及分组信息

    博客分类:
  • java
阅读更多

      网上也有不少例子,但是有些朋友遇到所谓911错误导致无法登录,isLogin=false。我对原有的代码进行了一点修改加了个等待10秒,因为发现每次登入耗时都不等,同时附上.jar包,因为个人使用中出现jar包问题导致无法登入.  修改代码如下:

package com.msn;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import rath.msnm.BuddyGroup;
import rath.msnm.BuddyList;
import rath.msnm.GroupList;
import rath.msnm.MSNMessenger;
import rath.msnm.msg.MimeMessage;
/**
 * Created by IntelliJ IDEA.
 * User: Eric
 * Date: 2008-12-2
 * Time: 14:33:20
 * To change this template use File | Settings | File Templates.
 */
public class MsnFriendOut {
    /**
     * getGroups(String userName,String password) 查询所有的 msn 分组。
     * getBuddyList(String userName,String password) 查询所有好友.(其他查询在线好友也雷同).
     *
     * @param args
     */
    private static final Logger log = Logger.getLogger(MsnFriendOut.class);
    private MSNMessenger msn = null;

    public static void main(String[] args) {
        MsnFriendOut ms = new MsnFriendOut();
        String msnAddress = JOptionPane.showInputDialog("请输入你的MSN");
        String password = JOptionPane.showInputDialog("请输入你的密码");
		ms.login(msnAddress, password);

        List<String> buddyList = ms.getBuddyList(msnAddress, password);

        if (buddyList != null) {
            for (String name : buddyList) {
                System.out.println("Buddy :" + name);
            }
        }

    }

    public void setMsnMessager(String userName, String password) {
        this.msn = new MSNMessenger(userName, password);

    }

    public MSNMessenger getMsnMessager() {
        return msn;
    }

    /**
     * Login ur msn base on username and password.
     *
     * @param userName
     * @param password
     */
    public void login(String userName, String password) {
        if (msn == null)
            setMsnMessager(userName, password);
        try{
            msn.login();
        }catch(Exception e){
            log.error(e);
        }
    }

    /**
     * Get all of ur msn group by username and password. (推荐)
     *
     * @param userName
     * @param password
     * @return all ur msn group .
     */
    public List<String> getGroups(String userName, String password) {
        if (msn == null)
            setMsnMessager(userName, password);
        if (!msn.isLoggedIn()) {
            login(userName, password);
        }
        return getGroups(msn);
    }

    /**
     * Get all of ur buddy by username and password. (推荐)
     *
     * @param userName
     * @param password
     * @return All the buddy
     */
    public List<String> getBuddyList(String userName, String password) {
        if (msn == null)
            setMsnMessager(userName, password);
			login(userName, password);

        while(!msn.isLoggedIn()){
            login(userName, password);
            try {
                Thread.currentThread().sleep(10000);
            } catch (InterruptedException e) {
                
                e.printStackTrace();
            }
          System.out.println("isLogin:"+ msn.isLoggedIn());
        }
        return getBuddyList(msn);
    }

    /**
     * Get all of ur buddy group by MSNMessage.(不推荐)
     *
     * @param msn
     * @return
     */
    public List<String> getGroups(MSNMessenger msn) {
        if (msn == null)
            return null;
        if (!msn.isLoggedIn()) {
            log.warn("Please set the MSNMessge");
            msn.login();
        }
        BuddyGroup buddyGroup = msn.getBuddyGroup();
        GroupList groupList = buddyGroup.getGroupList();
        Iterator groupIterm = groupList.iterator();
        List list = null;
        while (groupIterm.hasNext()) {
            list = (list == null) ? new ArrayList() : list;
            list.add(groupIterm.next().toString());
        }
        return list;
    }

    /**
     * Get all of ur buddy by MSNMessage.(不推荐,)
     *
     * @param msn
     * @return
     */
    public List<String> getBuddyList(MSNMessenger msn) {
        if (msn == null) {
            log.warn("Please set the MSNMessge");
            return null;
        }
        if (!msn.isLoggedIn()) {
            msn.login();
            return null;
        }else{
            BuddyGroup buddyGroup = msn.getBuddyGroup();
            BuddyList buddyList = buddyGroup.getForwardList();
            List list = null;
            // check.
            if (buddyList == null || buddyList.size() < 1)
                return null;

            for (int i = 0; i < buddyList.size(); i++) {
                list = (list == null) ? new ArrayList() : list;
                String fname = buddyList.get(i).getLoginName();

                list.add(fname);
            }

            MimeMessage msg = new MimeMessage();
            msg.setMessage("测试");
            try {
                boolean sendOk = msn.sendMessage("*****@hotmail.com", msg);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return list;
        }
    }
}


 

 

分享到:
评论

相关推荐

    多层分组表头导出Excel与后台JAVA交互

    根据前台表样已定义好的高级表格,而当前表格的HeaderColumn部份为高级分组,即多层分组列,将我们前所见即所得,点击导出按钮后,直接根据数据的逻辑,自动生成了多层组表的表头部份数据样式。 文件夹中附有源代码...

    用JAVA导出MYSQL的数据

    本话题主要探讨如何使用Java程序导出MySQL数据库中的数据。以下将详细讲解相关概念和技术。 首先,导出MySQL数据最常用的方式是通过命令行工具`mysqldump`。`mysqldump`是一个实用程序,它能备份MySQL数据库,生成...

    java导出oracle数据(单表)

    在本资源中,我们将讨论如何使用 Java 语言导出 Oracle 数据库中的单表数据。该资源提供了一个完整的示例代码,展示了如何使用 Java 语言连接 Oracle 数据库,执行导出操作,并处理可能出现的错误。 知识点 1:Java...

    Java导出Word文件

    本文将详细讲解如何使用Java实现Word文件的导出,并结合提供的资源进行解析。 首先,Java导出Word文件通常有两种方式:一是使用Apache POI库,二是使用JODConverter库。Apache POI是广泛使用的开源库,它允许Java...

    java 导出数据为sav格式

    以上是关于"java导出数据为sav格式"的详细知识,涵盖从Java编程到SPSS数据格式,再到Maven私服的使用,希望对理解和实现该功能有所帮助。在实际应用中,还需要注意数据的正确性、错误处理以及性能优化等问题。

    java导出SPSS格式文件

    - 有了数据记录和元数据,就可以使用Java的二进制输出流(如FileOutputStream)来写入SPSS文件的二进制格式。 - 按照SPSS文件的结构,先写入元数据,然后是数据记录。每个变量的值按照它们在数据结构中的顺序写入...

    Java导出CSV文件

    java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。

    java poi导出图片到excel示例代码

    今天,我们将介绍如何使用Java POI将图片导出到Excel中。 标题解释 Java POI导出图片到Excel示例代码,标题表明了本文的主要内容,即使用Java POI将图片导出到Excel中。 描述解释 描述中提到了本文的主要内容,...

    java导出图片到excel

    在Java编程中,导出数据到Excel是一种常见的需求,尤其当需要将图片与文本一起展示在电子表格中时。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并未提供直接支持图像到Excel的功能。以下是一些...

    JAVA 导出WORD

    本文将详细讲解如何使用Java实现Word文档的导出,并着重介绍涉及的库和关键技术。 首先,标题"JAVA 导出WORD"指的是使用Java语言编写程序来生成或导出Microsoft Word文档。在Java中,没有内置的API直接支持Word文档...

    java 导出excel,带图片的Excel导出

    在Java编程中,导出Excel是一项常见的任务,特别是在数据分析、报表生成或数据交换等领域。而带图片的Excel导出则增加了复杂性,因为涉及到二进制数据的处理和Excel特定格式的支持。以下是一些关于如何在Java中实现...

    java导出pdf文件代码示例

    java示例代码,导出pdf文件,加签;可以实现导出pdf的图片签名;导出图片,文件,内容.纯后端代码,代码示例 在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf...

    java导出docx导出pdf

    Java编程语言在处理文档转换方面提供了强大的支持,...综上所述,"java导出docx导出pdf"的项目提供了一个Java解决方案,通过利用Apache POI和iText库,实现了从Docx到PDF的快速转换,适用于各种需要文档转换的场景。

    Java导出Oracle数据库数据

    本文将介绍如何使用 Java 语言将 Oracle 数据库数据导出到文件中,并将其导入到 Oracle 数据库中。 从标题和描述中可以看到,本文的主要内容是使用 Java 语言将 Oracle 数据库数据导出到文件中,并将其导入到 ...

    使用java导出PPT的方法_简单的例子

    本文将详细介绍如何使用Java来创建和导出PPT,以一个简单例子为引导。 首先,我们需要引入能够处理PPT的Java库。Apache POI是一个广泛使用的开源库,它提供了读取、写入Microsoft Office格式文件的能力,包括PPTX...

    java导出文件文件名处理

    ### Java导出文件名处理详解 在Java Web开发过程中,经常需要实现文件的导出功能。这涉及到将数据从服务器端导出为特定格式的文件(如Excel、PDF等),并提供给用户下载。在这个过程中,正确处理文件名是非常重要的...

    java导出到excel的工具类

    本篇文章将深入探讨如何使用Apache POI创建一个Java工具类来实现高效且灵活的Excel导出功能。 首先,我们需要了解Apache POI的基本用法。Apache POI提供了两种主要的API用于处理Excel文件:HSSF(用于旧版的.xls...

    java导出PDF、导出漂亮PDF、导出指定格式PDF

    我们在项目当中经常要导出pdf文档,pdf文档还要按一定的格式导出,以下介绍导出pdf文档功能: 1)支持A4纸大小导出 2)指定文字显示的位置 3)支持表格展示数据 4)添加水印 5)代码全开源,在多个项目中使用,放心...

    java导出excel树结构工具类

    该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。

Global site tag (gtag.js) - Google Analytics