我正在开发一个Android应用程序,我想在没有打开android的默认浏览器的情况下从网址获取新闻。这意味着我只想获取texutal内容,只获取新闻而不是浏览器中的完整html页面。我怎么能这样做?
答案 0 :(得分:3)
如果我理解正确 - 您需要在线提出请求并收到html代码。 这样做如下:
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(http://example.com/news));
HttpResponse response = client.execute(request);
BufferedReader in = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line;
while ((line = in.readLine()) != null) {
sb.append(line);
}
in.close();
String html = sb.toString();
答案 1 :(得分:0)
您是否想要将网页的实际内容解析为您的应用程序?当我在我的一个应用程序中这样做时,我用一个简单的http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html解析了整个网页,然后我拿出那些相关的标签。然而,这需要在asynctask(http://developer.android.com/reference/android/os/AsyncTask.html)下运行一些非常繁重的动态编程。
URL url = new URL(XML_INIT_ADRESS);
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(url.openStream(), null);
我个人对Android还没有很熟悉,我还在学习,但你应该能够通过这种方式解析网页上的新闻。
编辑:这种方法几乎需要对某些“新闻标签”进行某种识别,如果它们“无法确定”,安东斯的答案会更好。
答案 2 :(得分:0)
Hi Yes You can implement this.Use This code which i mention below.
- WebView webView = (WebView) findViewById(R.id.webview_btn);
WebSettings settings = webView.getSettings();
mProgress = ProgressDialog.show(this, "Loading", "Please wait for a moment...");
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
WebViewClient client = new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
mProgress.show();
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
if(mProgress.isShowing())
{
mProgress.dismiss();
}
}
};
webView.loadUrl(enter your url);
webView.setWebViewClient(client);
答案 3 :(得分:0)
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.example.com/" + URL);
response = httpClient.execute(httpGet, localContext);