HTTPS登录?JAVA

HTTPS登录?JAVA,java,twitter,login,https,Java,Twitter,Login,Https,我正在尝试编写一段代码,尝试登录twitter,检查用户名是否正确,然后返回是真是假。它不起作用,因为如果我输入正确的用户名并通过,我仍然可以获得登录页面 public class httpConnect { //Variables public Boolean correctCredentials(String site, String user, String pass) { String data = connect(site, user, pass); char[] c

我正在尝试编写一段代码,尝试登录twitter,检查用户名是否正确,然后返回是真是假。它不起作用,因为如果我输入正确的用户名并通过,我仍然可以获得登录页面

public class httpConnect {
//Variables

public Boolean correctCredentials(String site, String user, String pass) {
    String data = connect(site, user, pass);
    char[] charArray = data.toCharArray();
    try {
        File log = new File("C:\\Users\\________\\Desktop" + "\\" + "log.txt");
        if (log.exists()) {
            Scanner scan = new Scanner(log);
            while (scan.hasNextLine()) {
                String temp = scan.nextLine();
                temp = charArray.toString() + (char) 10 + (char) 10 + (char) 10 + temp;
                charArray = temp.toCharArray();
            }
        }
        BufferedWriter out = new BufferedWriter(new FileWriter("C:\\Users\\________\\Desktop" + "\\" + "log.txt", true));  //bufferedWriter for speed
        out.append((char) 10);
        for (int x = 0; x < charArray.length; x++) {
            out.append(charArray[x]);
        }
        out.flush();
        out.close();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e + "\nSorry, could not write File"); //gives error if path does not exist
    }
    return false;
}

public String connect(String site, String user, String pass) {
    StringBuilder response = new StringBuilder();
    ;
    try {
        String encodedUser = URLEncoder.encode(user, "UTF-8");
        String encodedPass = URLEncoder.encode(pass, "UTF-8");
        /*
         * commit - LOGIN_ACTION_NAME
         * session[username_or_email] - LOGIN_USER_NAME_PARAMETER_NAME
         * session[password] - LOGIN_PASSWORD_PARAMETER_NAME
         */
        String content = "login=" + "commit" + " amp;amp;"
                + "session[username_or_email]" + "=" + encodedUser + "amp;amp;"
                + "session[password]" + "=" + encodedPass;
        HttpsURLConnection urlConnect = (HttpsURLConnection) (new URL(site).openConnection());
        urlConnect.setDoInput(true);
        urlConnect.setDoOutput(true);
        urlConnect.setRequestProperty("Content-Type", "text/html; charset=utf-8");
        urlConnect.setRequestMethod("POST");
        DataOutputStream dataOutputStream = new DataOutputStream(urlConnect.getOutputStream());
        dataOutputStream.writeBytes(content);
        dataOutputStream.flush();
        dataOutputStream.close();
        BufferedReader buf = new BufferedReader(new InputStreamReader(urlConnect.getInputStream()));
        String responseLine = "";
        while ((responseLine = buf.readLine()) != null) {
            response.append(responseLine);
        }
        System.out.println(response);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return response.toString();
}
}
公共类httpConnect{
//变数
公共凭据(字符串站点、字符串用户、字符串传递){
字符串数据=连接(站点、用户、通行证);
char[]charArray=data.toCharArray();
试一试{
文件日志=新文件(“C:\\Users\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\”log.txt”);
if(log.exists()){
扫描仪扫描=新扫描仪(日志);
while(scan.hasNextLine()){
String temp=scan.nextLine();
temp=charArray.toString()+(char)10+(char)10+(char)10+温度;
charArray=临时toCharArray();
}
}
BufferedWriter out=new BufferedWriter(新文件写入程序(“C:\\Users\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'log.txt”,true));//BufferedWriter的速度
out.append((char)10);
对于(int x=0;x
所以,基本上我要做的是尝试登录,然后扫描页面,看看标题是否写着“Twitter\Home”,如果是,我知道我正确登录了。我还没有走那么远,但当我自己浏览它时,它就不起作用了

顺便说一句,我不想使用Twitter4j,因为它拒绝返回布尔值



也可能是我没有正确的页面来尝试登录。我怎么找到它?twitter会是什么样子?

你有没有看过使用官方twitter API的情况(http://dev.twitter.com/doc)这样做


查看您的代码表明您在模仿浏览器的身份验证请求,但这可能会遗漏一些信息,例如cookie、请求令牌以及他们在登录页面中可能使用的任何其他信息。

我已经看过了。它说你必须注册应用程序并使用Oauth。这不是它将要做的,我希望它像一个浏览器。我想当我回去浏览的时候,我缺少的是饼干。