2012-07-08 91 views
1

所以這裏是我目前遇到的問題...我有一個運行在服務器上的ASPX腳本(比方說http://www.myserver.com/script.aspx)...when我通過我的網頁瀏覽器打開這個頁面我得到一個純文本頁面與格式化像這樣(只是一條線)的一些數據:HttpURLConnection並獲取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(); 

的問題是,得到的字符串只包含字母'@'。沒有我的數據標誌。我嘗試過使用其他網頁地址(l ike google.com)來測試它是否是我的代碼中的問題......但它的工作原理......我總是得到頁面的第一行(通常是第一個html標記,因爲它是一個HTML網頁)。

我現在猜測,這是一種與我打電話給我的ASPX腳本的問題...我怎樣才能通過Java調用它,所以我得到了與瀏覽器相同的結果(例如,一行與我的數據)

+0

爲什麼你不輸出其餘的行,也許這有助於理解正在發生的事情。 – Ixx 2012-07-08 12:17:23

+1

也有你在瀏覽器中查看網頁的來源,也許還有額外的字符,瀏覽器只是忽略。 – Ixx 2012-07-08 12:18:54

回答

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"); 

訣竅。我現在唯一想知道的是用戶代理會理想地說「我是瀏覽器」......這似乎有點長了嗎?

+0

很遺憾,對於一個短的用戶代理字符串沒有好的結果...爲了更好的閱讀,請檢查[瀏覽器用戶代理字符串的歷史記錄](http://webaim.org/blog/user-agent-string-history /);) – 2012-07-08 13:27:48