所以这就是我目前遇到的问题......我有一个在服务器上运行的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调用它以便我得到与浏览器相同的结果(例如一个与我的数据一致)
答案 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");
做了这个伎俩。我现在唯一想知道的是用户代理是理想的说“我是浏览器”......这看起来有点长?