21xrx.com
2024-12-23 03:36:19 Monday
登录
文章检索 我的文章 写文章
从前我一直使用的是 Java 版本的 QQ
2023-06-14 22:29:29 深夜i     --     --

从前我一直使用的是 Java 版本的 QQ ,但最近登录时却发现不论如何都无法登陆了。我开始怀疑是不是 QQ 官方更新了协议,Java 版本的 QQ 没有跟上步伐停止了服务,但我没有找到相关的新闻或公告。

开始怀疑是不是我的账号出现了什么问题,于是我在网上查找了一些解决方法。其中一些方法包含了修改端口号、更改入站规则等等,但是这些方法对我都没有用。

最终,在一篇帖子中,我找到了一个最有帮助的解决方法,那就是升级 Java 版本。Java 自从版本 1.6.0_10 起,增加了支持 SSLv3 协议,而 Java 版本的 QQ 所使用的 SSLv3 协议已经被官方弃用,所以这也就导致了无法登录的问题。

在这里,我分享了一个能够使用的代码例子,只需要更改一下账号和密码,就可以登录了:


import com.sun.net.ssl.internal.ssl.Provider;

import javax.net.ssl.*;

import java.io.*;

import java.net.*;

public class QQLogin {

  private static final String qqUser = "Your QQ user name here";

  private static final String qqPassword = "Your QQ password here";

  public static void main(String[] args) throws Exception {

    System.setProperty("java.protocol.handler.pkgs", "javax.net.ssl");

    Security.addProvider(new Provider());

    SSLSocketFactory factory = HttpsURLConnection.getDefaultSSLSocketFactory();

    URL url = new URL("https://ssl.ptlogin2.qq.com/login");

    HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

    connection.setDoInput(true);

    connection.setDoOutput(true);

    connection.setRequestMethod("POST");

    connection.setRequestProperty("User-Agent",

        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36");

    String params = String.format(

        "u=%s&p=%s&verifycode=&aid=614038509&u1=https%%3A%%2F%%2Fqun.qq.com%%2F&h=1&ptredirect=1&pt_lang=2052&from_ui=1&dumy=",

        qqUser, qqPassword);

    OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());

    writer.write(params);

    writer.flush();

    writer.close();

    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

    String line;

    while ((line = reader.readLine()) != null) {

      System.out.println(line);

    }

    reader.close();

  }

}

代码中涉及到的三个关键字是 Java、QQ 和 SSLv3协议。

如果你也发现 Java 版本的 QQ 无法登录,请尝试升级 Java 版本,相信会有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复