0

私はこのリンクにhtmlunitの質問を投稿しました:私のAndroidプロジェクトでhtmlunitを使用する方法

主に私はログイン後に取得したリンクを持っています(私はWebビューからログインしています)このリンクは私に簡単なページを与えます。そのページには、テキストエリアと送信ボタンがあります。また、JavaScriptもいくつかあります(送信ボタンを押すと、これらのJavaScriptが実行されると思います)。私はwebviewを介してそれを行うことができますが、何らかの理由でwebviewを使用したくありません。送信ボタンを押すと、textareaの値と、既存のCookie(Webビューからログインしたときに取得される)Postメソッドを含む非表示フィールドの値が配信されます。私はウェブビューなしでこれを行う必要があります。htmlunit以外に他のオプションはありますか?HttpClient、HttpUrlConnectionについて聞いたことがあります。しかし、それらは私にとってまったく新しいので、私の問題を解決するためにそれらを使用する方法がわかりません。これらのクラスを使用する場合は、UIトレッドとは別のスレッドで実行する必要があると思います。もう一つ、送信後、別のページにリダイレクトされます。このリダイレクトされたページでは何もする必要はありません。

ありがとうございました

4

1 に答える 1

0

これは私がここで与えたのと同じ答えです

私は問題を解決しました。まず第一に、私はいつも正しいクッキーを手に入れていました。それで、何が問題だったのですか。Cookie を Jsoup に統合するのが間違っていたか、Jsoup が何か間違っていました。そのため、最初に HttpUrlConnection でページを取得してから、Jsoup で解析します。このような:

URL form = new URL(uri.toString());
HttpUrlConnection connection1 = (HttpURLConnection)form.openConnection();
connection1.setRequestProperty("Cookie", my_cookie);
connection1.setReadTimeout(10000);
StringBuilder whole = new StringBuilder();
BufferedReader in = new BufferedReader(
new InputStreamReader(new BufferedInputStream(connection1.getInputStream())));
String inputLine;
while ((inputLine = in.readLine()) != null)
      whole.append(inputLine);
in.close();
Document doc = Jsoup.parse(whole.toString());

このコードに関するアドバイスをいただければ幸いです。

于 2013-04-07T21:58:49.420 に答える