我正在使用以下代碼從局域網上的Web服務器獲取頁面的源代碼,該代碼是純文本(無html標記)。但是我總是得到空字符串作爲回報,如果我在瀏覽器中打開相同的URI,我可以看到文本。以下是我的代碼:Android - 局域網上的HTTP獲取請求
String url = "http://192.168.1.40/touchscreens/get.qsp?display=1";
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setHeader("Content-Type", "text/plain; charset=utf-8");
request.setURI(new URI(url));
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
String page = sb.toString();
Toast.makeText(getApplicationContext(), page, Toast.LENGTH_LONG).show();
還有一件事,當我進入Android模擬器瀏覽器我看不出有什麼相同的URL。我錯過了什麼嗎?
使用IP呼叫時不應該有一些端口? – kosa 2012-01-16 20:46:49
StringBuilder類通常應優先於StringBuffer使用,因爲它支持所有相同的操作,但速度更快,因爲它不執行同步。 – jacknad 2012-01-16 20:49:13
@thinksteep:它在80端口上工作,正如我所說的,當我在Google Chrome瀏覽器中粘貼相同的URL時,我可以成功查看文本。 – Ali 2012-01-16 20:50:13