将Html源代码保存到String

时间:2015-04-21 11:58:07

标签: android html string

首先我是德国人,对不起我的英语不好;) 我为我的学校编写了一个应用程序,如果课程被取消,它会给学生一个通知。我的学校更新了互联网上的替代计划。它是一个.htm文件。 (http://www.dbg-filderstadt.de/fileadmin/dateien/Dokumente/w00000.htm

所以重点是我是Android / Java编码的新手,我不知道如何将网站的信息/源代码保存在字符串中。

你能给我一个示例代码怎么做?

2 个答案:

答案 0 :(得分:0)

一种方法是按照Android文档发送GET请求,并使用以下代码使用Volley库:

// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String pageContent = "";
String url ="http://www.dbg-filderstadt.de/fileadmin/dateien/Dokumente/w00000.htm";

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
        new Response.Listener<String>() {
@Override
public void onResponse(String response) {
    // Display the first 500 characters of the response string.
    pageContent = response;
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
    //do something
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);

在这种情况下,当您的请求成功时(从服务器变为响应代码200 Ok - 没有错误),系统会运行一个名为onResponse的方法,您将成为一个字符串(名为response),这正是您提出要求的页面。所以你可以将它保存到你的变量中并在以后使用它(例如我调用了这个变量pageContent)。

我也附上了android文档的链接:https://developer.android.com/training/volley/simple.html

不要忘记在AndroidManifest.xml中添加请求网络的权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 以及Volley库对build.gradle文件的以下依赖关系:compile 'com.mcxiaoke.volley:library:1.0.+'

答案 1 :(得分:0)

如果您只想建立HTTP连接以下载HTML文件,则可以使用http://developer.android.com/reference/java/net/HttpURLConnection.html。然后,您必须从中读取输入流并将其转换为字符串,然后可能还通过某种方式解析HTML。

但是,请注意,让应用程序从互联网上读取HTML资源并不是正常或更好的方法,理想情况下,您希望通过某种API获取您的信息。通过下载和解析HTML,您的应用程序将依赖于不会更改的HTML资源并破坏您的解析代码等。这非常脆弱。