0

初めて http Web サイトにログインしようとしていますが、引数を送信するための適切な形式を理解するのに苦労しています。私は他の例を見てきましたが、私にはうまくいかないようです。この時点で、私のコードはまったく何もしていないように見えますが、ここにあります...

HttpURLConnection url= (HttpURLConnection)new URL("http://www.myameego.com/index2.php?do=login").openConnection();
url.setDoOutput(true);
url.setRequestMethod("POST");
OutputStreamWriter writer = new OutputStreamWriter(url.getOutputStream());
writer.write("X-Mapping-fjhppofk=6A991610BA398B3A39F4B491D5382BB4;
PHPSESSID=kbo25e08t3qvu08l1shkq8kk94; userName=coled; pass=ed45d626b07112a8a501d9672f3b92796a6754b8d8d9cb4c617fec9774889220; clientID=129; X-Mapping-fjhppofk=DCE62FE972E1EF2F12D0060EC74C3681; PHPSESSID=ukeo21oldb5pqsntu7kl8j3b96");
writer.flush();

ブラウザが送信しているものを読み取ることができると考えて、http スニファーをダウンロードしました。それが write() 行を取得した方法です。これは、エクスプローラーによって送信された Cookie です。また、ログイン画面のソース コードを表示したところ、ログインを担当しているように見えるコード ブロックが下部に見つかりました。

http://www.myameego.com/index2.php?do=login

このインターフェイスに接続する方法を誰か教えてもらえますか。これがどのように機能するかわかりません。それが役立つ場合、これはブラウザを介した手動ログインからの完全なパケットです。http スニファから取得しました。

Host Name: www.myameego.com
Method: POST
Path: /index2.php?do=login
User Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; NP06)
Response Code: 302
Response String: found
Content Type: text/html; charset=UTF-8
Referer: http://www.myameego.com/index.php?do=login
Transfer Encoding: chunked
Server: Apache
Content Length: 17817
Connection: Keep-Alive
Cache Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Location: /Ameego/index.php
Cookie: X-Mapping-fjhppofk=6A991610BA398B3A39F4B491D5382BB4; PHPSESSID=kbo25e08t3qvu08l1shkq8kk94; userName=coled; pass=ed45d626b07112a8a501d9672f3b92796a6754b8d8d9cb4c617fec9774889220; clientID=129; X-Mapping-fjhppofk=DCE62FE972E1EF2F12D0060EC74C3681; PHPSESSID=ukeo21oldb5pqsntu7kl8j3b96
URL: http://www.myameego.com/index2.php?do=login

上記のようなパッケージを作成するにはどうすればよいですか? ガイダンスをいただければ幸いです。

あなたが投稿したリンクを調べたところ、http スニファーは POST リクエストが呼び出されていることを示していますが、Cookie の行は手動のブラウザー リクエストの行と一致しません。

HttpURLConnection httpConnection = (HttpURLConnection)new URL("http://www.myameego.com/index2.php?do=login").openConnection();
    httpConnection.setDoOutput(true);
    httpConnection.setRequestMethod("POST");
    httpConnection.setRequestProperty("Accept-Charset","UTF-8");
    httpConnection.setRequestProperty("User-Agent","Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; NP06)");
    httpConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
    String info = String.format("user=%s&coled=%s",URLEncoder.encode("user","UTF-8"),URLEncoder.encode("coled","UTF-8"));
    info += String.format("pass=%s&MYPASS=%s",URLEncoder.encode("pass","UTF-8"),URLEncoder.encode("MYPASS","UTF-8"));
    info += String.format("clientID=%s&129=%s",URLEncoder.encode("clientID","UTF-8"),URLEncoder.encode("129","UTF-8"));
    info += String.format("login=%s&Sign In=%s",URLEncoder.encode("login","UTF-8"),URLEncoder.encode("Sign In","UTF-8"));
    httpConnection.setRequestProperty("Cookie",info);
    OutputStream output = httpConnection.getOutputStream();
    output.write(info.getBytes("UTF-8"));
    int x;
    while((x = httpConnection.getInputStream().read()) != -1)System.out.print((char)x);

私のクッキー: user=user&coled=coledpass=pass&MYPASS=MYPASSclientID=clientID&129=129login=login&Sign In=Sign+In

ブラウザー Cookie:
X-Mapping-fjhppofk=6A991610BA398B3A39F4B491D5382BB4; PHPSESSID=112tg9i4afau5i382hui705553

ここで何が欠けているか知っている人はいますか?

4

1 に答える 1