Code Monkey home page Code Monkey logo

contactlist's Introduction

contactlist's People

Contributors

flyerhzm avatar louiseliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

contactlist's Issues

求助

高手,请问代码里的url及参数和cookie的配置您是通过什么方法获得的?

修改OneSixThreeImporter支持163邮箱

我对OneSixThreeImporter做了一些修改,可以获得联系人了。其中contactsUrl 使用了 "http://tg4a84.mail.163.com/jy3/address/addrprint.jsp?",使用Jsoup解析DOM。

在pom中需增加jsoup:

org.jsoup
jsoup
1.7.3

OneSixThreeImporter代码:
package com.huangzhimin.contacts.email;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.NameValuePair;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import com.huangzhimin.contacts.Contact;
import com.huangzhimin.contacts.exception.ContactsException;

/**

  • 导入163联系人列表

  • @author flyerhzm

  • */
    public class OneSixThreeImporter extends EmailImporter {
    // 登录url

    private String loginUrl = "http://reg.163.com/login.jsp?type=1&url=http://entry.mail.163.com/coremail/fcg/ntesdoor2?lightweight%3D1%26verifycookie%3D1%26language%3D-1%26style%3D3";

    /**

    • 构造函数
    • @param email
    • @param password
      */
      public OneSixThreeImporter(String email, String password) {
      super(email, password, "UTF-8");
      }

    /**

    • 登录163邮箱

    • @throws ContactsException
      */
      public void doLogin() throws ContactsException {
      try {
      NameValuePair params[] = { new NameValuePair("verifycookie", "1"),
      new NameValuePair("product", "mail163"),
      new NameValuePair("username", getUsername(email)),
      new NameValuePair("password", password),
      new NameValuePair("selType", "jy") };
      Calendar calendar = Calendar.getInstance();
      calendar.set(2099, 11, 31);
      client.getState().addCookies(
      new Cookie[] {
      new Cookie(".163.com", "ntes_mail_firstpage",
      "normal", "/", calendar.getTime(), false),
      new Cookie(".163.com", "loginType", "js", "/",
      calendar.getTime(), false) });
      String responseStr = doPost(loginUrl, params,
      "http://mail.163.com/");

      String redirectUrl = getJSRedirectLocation(responseStr);
      doGet(redirectUrl, loginUrl);
      

      } catch (Exception e) {
      throw new ContactsException("163 protocol has changed", e);
      }
      }

    /**

    • 进入联系人列表页面,并读取所有的联系人信息

    • @return 所有的联系人信息

    • @throws ContactsException
      */
      public List parseContacts() throws ContactsException {
      try {
      String contactsUrl = "http://tg4a84.mail.163.com/jy3/address/addrprint.jsp?" + getSid(lastUrl);
      String content = doGet(contactsUrl);

      List<Contact> contacts = new ArrayList<Contact>();
      Document doc = Jsoup.parse(content);
      Elements names = doc.select(".gTitleSub .mTT");
      Elements addresses = doc.select(".gTable tbody tr:first-child td");
      int size = names.size();
      for (int i = 0; i < size; i++) {
          String username = names.get(i).text().trim();
          String email = addresses.get(i).text().trim();
          contacts.add(new Contact(username, email));
      }
      
      return contacts;
      

      } catch (Exception e) {
      throw new ContactsException("163 protocol has changed", e);
      }
      }

    private String getSid(String url) {
    return url.substring(url.indexOf("sid="));

    }
    }

依赖的类库能否自适应

我们项目中已经使用了httpclient4,contactlist 要求3;

我们用了jackson,contactlist要求用Json。

我们用的是apache commons log,contactlist要去用log4j,这个倒是小问题。

请问contactlist作为模块功能,和项目主类库冲突如何解决?能否让contactlist 进行HTTP请求或者解析json的时候,自动适应项目中可能已经存放的功能类似jar包?

谢谢。

39 protocol has changed

com.huangzhimin.contacts.exception.ContactsException: 139 protocol has changed
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:103)
at com.test.Main.main(Main.java:26)
Caused by: com.huangzhimin.contacts.exception.ContactsException: 139 protocol has changed
at com.huangzhimin.contacts.email.OneThreeNineImporter.doLogin(OneThreeNineImporter.java:48)
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:99)
... 1 more
Caused by: java.lang.NullPointerException
at com.huangzhimin.contacts.email.EmailImporter.getUsername(EmailImporter.java:454)
at com.huangzhimin.contacts.email.OneThreeNineImporter.doLogin(OneThreeNineImporter.java:38)
... 2 more

yahoo导出乱码

yahoo导出名字是乱码,我也做了转换了,new String(contact.getUsername().getBytes(),"GBK")

获取MSN联系人失败

new MSNImporter("[email protected]", "**********").getContacts();
如此使用获取不到联系人,返回结果为空。
将Importer改为HotmailImporter后,可以正常获取结果,证明用户名密码没有错误。

是我调用的地方有什么问题吗?求解哈。

163 protocol has changed

com.huangzhimin.contacts.exception.ContactsException: 163 protocol has changed
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:103)
at com.test.Main.main(Main.java:26)
Caused by: com.huangzhimin.contacts.exception.ContactsException: 163 protocol has changed
at com.huangzhimin.contacts.email.OneSixThreeImporter.doLogin(OneSixThreeImporter.java:67)
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:99)
... 1 more
Caused by: java.lang.NullPointerException
at com.huangzhimin.contacts.email.EmailImporter.getUsername(EmailImporter.java:454)
at com.huangzhimin.contacts.email.OneSixThreeImporter.doLogin(OneSixThreeImporter.java:47)
... 2 more

web api invoke return null

using php curl invoke:
$url = "https://123.183.209.87:8443/ContactListService/contacts";
$parameters = "account=[email protected]&password=xxx&type=163";

    $ch = curl_init( );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_POST, 1 );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $parameters);
    curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
    $contents = curl_exec( $ch );
    curl_close( $ch );
    echo $contents;

but return null ,how to solve?

获取不到 Yahoo contacts ?

错误如下:
com.huangzhimin.contacts.exception.ContactsException: sina protocol has changed
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:103)
at Test.testYahoo(Test.java:130)
at Test.main(Test.java:20)
Caused by: com.huangzhimin.contacts.exception.ContactsException: sina protocol has changed
at com.huangzhimin.contacts.email.SinaImporter.parseContacts(SinaImporter.java:91)
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:100)
... 2 more
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.json.JSONObject
at com.huangzhimin.contacts.email.SinaImporter.parseContacts(SinaImporter.java:76)
... 3 more

jar版本是 contactlist-1.13.0.jar

你好.请问这个问题如何解决 ? 谢谢

hotmail issue

some hotmail results have same email address and different username

获取不到 139 contacts

错误信息如下:

com.huangzhimin.contacts.exception.ContactsException: 139 protocol has changed
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:103)
at Test.test139(Test.java:98)
at Test.main(Test.java:21)
Caused by: com.huangzhimin.contacts.exception.ContactsException: 139 protocol has changed
at com.huangzhimin.contacts.email.OneThreeNineImporter.doLogin(OneThreeNineImporter.java:48)
at com.huangzhimin.contacts.email.EmailImporter.getContacts(EmailImporter.java:99)
... 2 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1623)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:198)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:192)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1074)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:128)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:529)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:465)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1120)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:506)
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at com.huangzhimin.contacts.email.EmailImporter.doPost(EmailImporter.java:164)
at com.huangzhimin.contacts.email.OneThreeNineImporter.doLogin(OneThreeNineImporter.java:43)
... 3 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:325)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:219)
at sun.security.validator.Validator.validate(Validator.java:218)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1053)
... 21 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:320)
... 27 more

版本是 contactlist-1.13.0.jar

牛人,你好,请问如何解决 ? 谢谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.