会社のサーバー (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 {}
私はこれに数週間苦労してきましたが、今あなたに助けを求めています.
- これが機能しない原因となる Android 4 の相違点 (プロセスは UI スレッドで実行されません)。Apache ライブラリから HttpClient を使用して同じ問題が発生すると予想できますか、それとも Jsoup の問題でしょうか。
- そしてもっと重要なのは、どうすればこれを機能させることができるかということです。ヒントをいただければ幸いです。
IT 部門は、サーバーは IE8 ブラウザーを介したログインのみをサポートしていると言っていますが、自分のコードが Android 2.2 または Java で動作しないという経験はありません。
私は誰でもこれを解決するのを手伝ってくれるので、とても感謝しています!