1

だからここに私が現在抱えている問題があります...私はサーバー上で実行されるASPXスクリプトを持っています(たとえばhttp://www.myserver.com/script.aspx ) ...私のWebブラウザでは、次のようにフォーマットされたデータを含むプレーンテキストページが表示されます(1行のみ)。

Data1|Data2|Data3|...

今、私はこのようにした私のAndroidアプリでこのデータをフェッチする必要があります:

URL url = new URL("http://www.myserver.com/script.aspx");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

BufferedReader in = new BufferedReader(new InputStreamReader((InputStream) urlConnection.getInputStream()));

String data = in.readLine();
System.out.println(data); // Just to print the result in LogCat for debug

urlConnection.disconnect();

問題は、結果の文字列に文字「@」しか含まれていないことです。私のデータの兆候はありません。他のウェブページアドレス(google.comなど)を使用して、コードに問題があるかどうかをテストしようとしましたが、機能します...常にページの最初の行(通常は最初のhtmlタグであるため)を取得しますHTML Webページ)。

これは、ASPXスクリプトの呼び出し方法に何らかの問題があると推測しています... Java経由で呼び出すと、ブラウザーと同じ結果が得られます(たとえば、データが1行表示されます)。

4

1 に答える 1

1

考え出した...ユーザーエージェントをブラウザに設定する必要がありました。そうやって

urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

トリックをしました。私が今疑問に思っている唯一のことは、「私はブラウザです」と言うのに理想的なユーザーエージェントは何かということです...これはちょっと長いようです?

于 2012-07-08T13:09:46.157 に答える