HttpURLConnection并获取ASPX页面

时间:2012-07-08 12:08:52

标签: java android http

所以这就是我目前遇到的问题......我有一个在服务器上运行的ASPX脚本(让我们说http://www.myserver.com/script.aspx)...when我通过网络浏览器打开这个页面我得到一个纯文本页面,其中包含一些这样的数据(只有一行):

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调用它以便我得到与浏览器相同的结果(例如一个与我的数据一致)

1 个答案:

答案 0 :(得分: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");

做了这个伎俩。我现在唯一想知道的是用户代理是理想的说“我是浏览器”......这看起来有点长?