登录代码无法正常工作

时间:2011-03-02 09:57:59

标签: java

任何人都可以帮我弄清楚为什么这段代码不起作用?它应该登录HTS,但它不起作用。它没有给我任何错误消息或任何东西,根本没有结果。任何帮助将不胜感激。

以下是代码:

import java.net.*;
import java.io.*;

public class Login {

private static URL URLObj;
private static URLConnection connect;

public static void main(String[] args) {
    try {
        URLObj = new URL("http://www.hackthissite.org/user/login");
        connect = URLObj.openConnection();
        connect.addRequestProperty("REFERER", "http://www.hackthissite.org");
        connect.setDoOutput(true);

    }
    catch (MalformedURLException ex) {
        System.out.println("The URL specified was unable to be parsed or uses an invalid protocol. Please try again.");
        System.exit(1);
    }
    catch (Exception ex) {
        System.out.println("An exception occurred. " + ex.getMessage());
        System.exit(1);
    }

    try {
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connect.getOutputStream()));
        writer.write("username=BrandonHeat&password=**********&btn_submit=Login");
        writer.close();

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

        String lineRead = "";

        while ((lineRead = reader.readLine()) != null) {
            System.out.println(lineRead);
        }

        reader.close();
    }
    catch (Exception ex) {
        System.out.println("There was an error reading or writing to the URL: " + ex.getMessage());
    }

}

}

1 个答案:

答案 0 :(得分:0)

我只是猜测,但是URLConnection的文档表明你必须在设置参数后连接:

  

1.通过调用openConnection方法创建连接对象   一个URL   2.操作设置参数和一般请求属性   3.使用connect建立与远程对象的实际连接   方法。
  4.远程对象变得可用。标题字段和内容   可以访问远程对象   ...
  使用以下方法   访问标题字段和   连接后的内容   到远程对象:

     
      
  • getContent
  •   
  • getHeaderField
  •   
  • getInputStream
  •   
  • 的getOutputStream
  •   

编辑:
你不能用URL中的参数打开URL(即http://www.hackthissite.org/user/login?username=BrandonHeat&password=xxxxx&btn_submit=Login),还是设置为标题?

另外,在connect()之后,如果你执行getContent()会得到什么?

编辑:有一个流程here的说明。

问候
纪尧姆