2011-03-02 4 views
0

このコードが動作しない理由を知ってもらえますか? 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()); 
    } 

} 

}

答えて

0

私は推測しているが、URLConnectionのドキュメントでは、パラメータを設定した後に接続しなければならないことを示しています。

1。接続オブジェクトはURLの でopenConnectionメソッドを呼び出すことによって作成されます。
2.セットアップパラメータと一般的な要求プロパティが操作されます。
3.リモートオブジェクトへの実際の接続は、接続 メソッドを使用して行われます。
4.リモートオブジェクトが使用可能になります。ヘッダーフィールドとリモートオブジェクト の内容にアクセスできます。
...
以下の方法が アクセスヘッダフィールドに使用され、接続後 内容がリモートオブジェクトを とする。

  • のgetContent
  • のgetHeaderField
  • のgetInputStream
  • getOutputStream

編集:
URLにあなたのパラメータ(つまり、http://www.hackthissite.org/user/login?username=BrandonHeat&password=xxxxx&btn_submit=Login)を使用してURLを開くことはできませんか、またはヘッダーとして設定されていますか?

また、connect()の後にgetContent()を実行するとどうなりますか?

編集:プロセスhereの説明があります。

よろしく
ギヨーム

+0

それはその方法だけでなく、まだ結果:(私は(ブラウザでも、通常は)パラメータでURLを開くと – BrandonHeat

+0

が、私はメッセージを取得するには、「ログインフォームを使用してくださいしようとしました – BrandonHeat

+0

OK、いくつかの改ざんの後、私は結局それを接続しましたが、現在はページを取得していますが、私は単にページに接続するのかログインするのかは分かりません。私は、ログイン後にサイトの別のページに移動するコードに新しい部分を追加しましたが、「ログインする必要があります」というエラーが表示されます。まず最初に正しくログインするか、必要なものすべてを渡すわけではないからですデータ。セッションID(PHPSESSID)のCookieを渡しています。追加する必要があるものは何ですか(または、最初のページに実際にログインしているかどうかを確認する方法はありますか)。 – BrandonHeat

関連する問題