私はログインしたときにユーザー名とパスワードを挿入してからこのwebsiteにアクセスし、アカウントからデータを取得するためにjavaを使用してプログラムを作成しようとしています。グーグルで多くを検索していくつか試しました.これを達成するために多くの運があります。助言がありますか?Java経由でウェブサイトにログインしますか?
答えて
使用しているコードは古い技術です。 Commons HttpClientははるかに簡単で、より堅牢なオプションであり、数多くのサンプルとオンラインドキュメントがあります。あなたがRubyを嫌うのではないなら、私はWatirを混ぜて投げます。実際にコードを必要とせず、シンプルなレコード再生の自動化が必要な場合は、Seleniumが良い選択です。
言語の理解が不足している私はあなたに具体的なアドバイスをすることはできません。
ただし、ウェブページ上のフォームを確認する方法があります。その後、そこに定義されているサイトに投稿要求を送信することができます。
投稿体として、URLパラメータとして表示されるようにフォームのパラメータを送信します。
<!-- language: lang-js -->
String payload = "password=test&user=test" // password and user must be replaced with the names of the form fields and test with password and username respectively
HttpURLConnection configConnection = new URL(formTarget).openConnection();
System.out.println("+------------------------------------------------------");
System.out.println("| Request ");
System.out.println("+------------------------------------------------------");
System.out.println("| URL: " + configConnection.getURL());
System.out.println("+------------------------------------------------------");
System.out.println("| Payload ");
System.out.println("+------------------------------------------------------");
System.out.println(payload);
configConnection.setDoOutput(true);
configConnection.setRequestMethod("POST");
configConnection.getOutputStream().write(payload.getBytes());
InputStream xmlInputStream = configConnection.getInputStream();
int _byte = -1;
ByteArrayOutputStream bios = new ByteArrayOutputStream();
while ((_byte = xmlInputStream.read()) > -1) {
bios.write(_byte);
}
final byte[] responseBytes = bios.toByteArray();
String responseString = new String(responseBytes);
System.out.println("+------------------------------------------------------");
System.out.println("| Response ");
System.out.println("+------------------------------------------------------");
System.out.println("| Code: " + configConnection.getResponseCode());
System.out.println("+------------------------------------------------------");
System.out.println(responseString);
System.out.println("+------------------------------------------------------");
より良いあなたは正しいXHTMLにそれを変換するためにtagsoupライブラリを使用することができ、出力を解析します。
このようなメソッドはありません: 'write(String)' –
configConnection.getOutputStream()。write(payload.getBytes()); //これを私の例から変更するのを忘れました – DoubleMalt
'isCompressed()'はどうですか? –
- 1. Androidアプリ経由でhttpsウェブサイトへのログイン
- 2. Google経由でログインした後にFacebook経由でログインできない
- 3. javaでウェブサイトにログイン
- 4. RESTクエリ経由でJIRAフィルタをウェブサイトに出力しますか?
- 5. Chrome Extension経由でPHPAuth/PHPAuthを使用してウェブサイトにログインする
- 6. AndroidでLinkedin経由でログイン
- 7. ウェブサイト、API、iPhoneアプリでユーザーがFacebook経由でログインできるようにする
- 8. JavaでHTTPSウェブサイトにログイン
- 9. ipv4経由で私のipv6ウェブサイトにアクセスできますか?
- 10. PHP経由でcPanelにログインできますか?
- 11. LDAP経由でJenkinsにログインすると失敗します
- 12. twitter経由でWebサイトにPythonログイン
- 13. Amazon EC2にssh経由でログイン
- 14. JCLがSLF4j経由でGlassfishにログイン
- 15. sudoユーザーとしてシェルにログインし、java経由でシェルを実行
- 16. ウェブサイト経由でejabberdを設定する
- 17. ローカルIP経由のPleskウェブサイト
- 18. ログイン資格をiframe経由で渡す
- 19. SSH経由でログインするBashスクリプト
- 20. パーズサーバー:クライアントキー:Javascript経由でログインする
- 21. GoogleマップからJava経由ですか?
- 22. facebookとgoogle経由のログイン
- 23. RestAssured JSON経由のログイン
- 24. WebClient経由のWeb Steamログイン
- 25. C#でコマンドライン経由でファイルをパイプしますか? Javaで
- 26. Jsoup - Javaを使用してウェブサイトにログイン
- 27. SMTPログインはAUTH PLAIN経由でのみ動作します
- 28. sequelize:localhost経由でログインできませんか?
- 29. 残りのサーバー経由でのDrupalログイン
- 30. Rocket Chat - Rest API経由でログイン
どのようなエラーメッセージが表示されますか? – Jonas
私は何のエラーも出ません。このメッセージは「HTPP POSTを成功裏に作成しました。」そして「Recevied Response is:」の後ろにページの内容が続きます –
あなたが今使っているコードを見せてください。 – Marcelo