1

所以这是我目前遇到的问题...我有一个在服务器上运行的 ASPX 脚本(比如说http://www.myserver.com/script.aspx )...当我通过我的网络浏览器我得到一个纯文本页面,其中包含一些格式如下(仅一行)的数据:

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 网页)。

我现在猜测这是我调用 ASPX 脚本的方式的某种问题......我如何通过 Java 调用它,所以我得到与浏览器相同的结果(例如,我的数据的一行)

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 回答