Java利用MSNP协议取得MSN联系人
上一篇文章中介绍了怎样利用MSNP登录MSN,在登录后便可取联系人了,很简单。
参考文章:
http://msnpiki.msnfanatic.com/index.php/MSNP13:Contact_List
http://msnpiki.msnfanatic.com/index.php/MSNP15:TicketTokens
在登录后,可以得到一个contacts.msn.com的ticketToken,这可用于后续的验证
一种方法是加入一个MSPAuth的cookie值为ticketToken,另一种是在SOAP请求的<ABAuthHeader xmlns="http://www.msn.com/webservices/AddressBook">中加入<TicketToken>t=RwyZZAkmFsHiK+GCv...&p=</TicketToken>
发送的SOAP请求如下:
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABFindAll
Content-Type: text/xml; charset=utf-8
Cookie: MSPAuth=Removed
Host: contacts.msn.com
Content-Length: Variable
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soap:Header>
<ABApplicationHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ApplicationId>CFE80F9D-180F-4399-82AB-413F33A1FA11</ApplicationId>
<IsMigration>false</IsMigration>
<PartnerScenario>Initial</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ManagedGroupRequest>false</ManagedGroupRequest>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABFindAll xmlns="http://www.msn.com/webservices/AddressBook">
<abId>00000000-0000-0000-0000-000000000000</abId>
<abView>Full</abView>
<deltasOnly>true</deltasOnly>
<lastChange>0001-01-01T00:00:00.0000000-08:00</lastChange>
</ABFindAll>
</soap:Body>
</soap:Envelope>
回复的XML包括了联系人信息:
HTTP/1.1 200 OK
Date: Fri, 11 Nov 2005 23:5
相关文档:
因为即将要学习lucene,所以我提前预习了lucene的相关知识,
1,lucene是众多搜索引擎中的一个,就像持久层除了Hibernate外也有很多其它框架
一样。Lucene是一个开发工具包,我们可以使用他为应用程序添加全文检索的功能。
2,目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系
统的搜索功能。 ......
我今天学习了徐老师讲的EJB3的知识,我做了简单的笔记:
SLSB无状态会话Bean的编程规则;
EJB类
编程规则
至少有一个业务接口
必须是具体类.不能是final或抽象的.
必须有空构造
可以是其它sessionbean或p ......
可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。
在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯 ......
1.列举出 10个JAVA语言的优势
a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用
2.列举出JAVA中10个面向对象编程的术语
a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型
3.列举出JAVA中6个比较常用的包
Java. ......
请参见上一篇文章,登录MSN协议
具体Java实现:
命令序列:<<代表发送,>>代表结果
1.连接DS(Dispatcher Server),得到NS(Notification Server)
<<VER 1 MSNP18 CVR0
>>VER 1 MSNP18
<<CVR 2 0x0804 winnt 5.1 i386 MSNMSGR 14.0.8089.0726 msmsgs yourAccount
>>CVR 2 14.0.8089 ......