0

会社のサーバー (SSL) にログインし、ブラウザのログインをシミュレートして仕事のスケジュールを取得する Android アプリを作成しています。次のコードは Android 2.2 と Java では問題なく動作しますが、Android 4 ではログインに失敗します。アプリがクラッシュすることはありませんが、ログインできません。ログインに失敗するだけでなく、ユーザーを締め出します。サーバーの。これは通常、連続してログインに失敗しない限り発生しません。

static final Sting host0 = "http://someplace.com"
static final Sting host1 = "https://someplace.com/login";
static final String userAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"
System.setProperty("http.keepAlive", "true");

try{
Connection.Response res = Jsoup.connect(host0)
        .userAgent(userAgent)
        .followRedirects(true)
        .method(Method.GET)
        .execute();
cookies1 = res.cookies();

Connection.Response res1 = Jsoup.connect(host)
        .data("label1","calue1",
                "label2","calue2",
                "label3","calue3",
                "label4","calue4")
                .cookies(cookies1)
                .userAgent(userAgent)
                .followRedirects(true)
                .method(Method.POST)
                .execute();

Connection.Response res2 = Jsoup.connect(host)
        .data("label5","calue15",
                "label6","calue6",
                "label7","calue7",
                "label18","calue8")
                .cookies(cookies1)
                .userAgent(userAgent)
                .followRedirects(true)
                .method(Method.POST)
                .timeout(10000)
                .execute();
}
catch (IOException ioe) {
    ioe.printStackTrace();
    System.out.println("IOException handled in initializeDocArray()");
}
finally {}

私はこれに数週間苦労してきましたが、今あなたに助けを求めています.

  1. これが機能しない原因となる Android 4 の相違点 (プロセスは UI スレッドで実行されません)。Apache ライブラリから HttpClient を使用して同じ問題が発生すると予想できますか、それとも Jsoup の問題でしょうか。
  2. そしてもっと重要なのは、どうすればこれを機能させることができるかということです。ヒントをいただければ幸いです。

IT 部門は、サーバーは IE8 ブラウザーを介したログインのみをサポートしていると言っていますが、自分のコードが Android 2.2 または Java で動作しないという経験はありません。

私は誰でもこれを解決するのを手伝ってくれるので、とても感謝しています!

4

1 に答える 1

0

Apache ライブラリ iso Jsoup を使用して解決しました。次に、Jsoup を使用して HttpClient からの resposeBody を解析します。よく働く。

于 2012-09-26T18:50:51.823 に答える