我想在android中獲取網頁的html代碼。該網頁的網址將在編輯文本框中給出,然後當用戶點擊該按鈕時,文本視圖將顯示該網頁的代碼。請解釋並給出代碼!android-如何在android中獲取網頁的html代碼?
任何幫助,將不勝感激!
我想在android中獲取網頁的html代碼。該網頁的網址將在編輯文本框中給出,然後當用戶點擊該按鈕時,文本視圖將顯示該網頁的代碼。請解釋並給出代碼!android-如何在android中獲取網頁的html代碼?
任何幫助,將不勝感激!
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
String html = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
str.append(line);
}
in.close();
html = str.toString();
不要忘記添加Internet權限在AndroidManifest:
<uses-permission android:name="android.permission.INTERNET" />
您可以參考這些鏈接以獲得更多幫助:
http://lexandera.com/2009/01/extracting-html-from-a-webview/
Is it possible to get the HTML code from WebView
How to get the html-source of a page from a html link in android?
您需要HttpClient
才能執行HttpGet
請求。然後您可以閱讀該請求的內容。
這個片段給你一個InputStream
:
public static InputStream getInputStreamFromUrl(String url) {
InputStream content = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
content = response.getEntity().getContent();
} catch (Exception e) {
Log.e("[GET REQUEST]", "Network exception", e);
}
return content;
}
而這個方法返回String
:
// Fast Implementation
private StringBuilder inputStreamToString(InputStream is) {
String line = "";
StringBuilder total = new StringBuilder();
// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
// Read response until the end
while ((line = rd.readLine()) != null) {
total.append(line);
}
// Return full string
return total;
}
來源:http://www.androidsnippets.com/executing-a-http-get-request-with-httpclient和http://www.androidsnippets.com/get-the-content-from-a-httpresponse-or-any-inputstream-as-a-string
你能告訴如何將html代碼顯示到textview中嗎?我試過了,它沒有奏效!它意外停止! @Kiril –
我假設你已經在佈局中定義了一個TextView。現在你可以通過使用TextView yourTextView =(TextView)findViewById(R.id.NameOfYourTextView)來訪問TextView;'之後你可以調用方法'yourTextView.setText(「HTML code」);' 編輯:同時請查看下面的提取HTML代碼的答案 – Kiril
@Kiril - 我如何得到一些網頁的html源代碼?如果我獲得完整的源頁面,它可能會花費很多時間,我不需要獲得所有的線路,你能幫助我嗎? thx非常 –
使用上面的代碼,並將其設置爲像這樣的文本視圖:
InputStream is =InputStream getInputStreamFromUrl("http://google.com");
String htmlText = inputStreamToString(is);
mTextView.setText(Html.fromHtml(htmlText));
但做網絡請求在一個單獨的線程/ asynctask :)
工作就像一個魅力! :)謝謝:D –
我如何得到一些網頁的html源代碼?如果我獲得完整的源頁面,它可能會花費很多時間,我不需要獲得所有的線路,你能幫助我嗎? thx非常多 –