-1

デスクトップ サイトのモバイル フレンドリー インターフェイスを表示する Android アプリケーション (私の最初のアプリケーションの 1 つ) を開発しています。問題は、サイトのユーザーがサイトのこれらの部分を表示できるようにするには、ログインする必要があることです。

私はこのサイトを所有しておらず、それらと提携していませんが、私自身の個人的な学習経験のためにこのアプリケーションを作成し、そのサイトのコミュニティを支援したいと考えています.

これを念頭に置いて、ユーザーを検証するために使用されるログイン フォームには、Invision Power Boards (例: community.invisionpower.com) を利用したサイトのフォーラムからアクセスします。モバイル アプリケーションでユーザーからユーザー名とパスワードを取得する方法は知っていますが、この情報をフォーラム/Web サイトのログイン フォームに送信し、プログラムでサインイン ボタンを「クリック」するにはどうすればよいですか?

4

1 に答える 1

0

まず、これをブラウザで行うか、コードで行うかを決定する必要があります。

コードでは、おそらく次のような HTTP 投稿を自動化する必要があります。

    // Start up your network connection
    URL url = new URL("http://www.asdf.com/someFormSubmissionPage);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoInput(true);

    String userInfo = "username=bob&password=pass";
    connection.setRequestProperty("Content-Length", "" + userInfo.length());

    connection.setDoOutput(true);

    // Send the actual data
    OutputStream out = connection.getOutputStream();
    out.write(userInfo.getBytes(UTF_8));

    // Flush everything to the destination
    out.flush();
    out.close();

    BufferedReader connectionReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), UTF_8));
    String responseLine;
    // Collect the entire response
    while ((responseLine = connectionReader.readLine()) != null)
        response.append(responseLine);

この時点で、応答で何かを行うことができます。おそらく、サーバーが返信する Cookie を保存するか、必要に応じて何でもできます。

別の方法として、WebView を開いて次のようなアドレスを指定することもできます。http://www.asdf.com/someFormSubmissionPage?username=bob&password=pass

これにより、ユーザーがログインした状態でブラウザーが起動します。

これは、実際のサイトのログイン ページを見ながらブラウザでsomeFormSubmissionPage実行するとわかります。view sourceユーザー名/パスの詳細もこの方法で見つけることができます。

于 2013-03-01T06:19:27.747 に答える