2015-04-21 6 views
0

сначала я немецкий, извините за мой плохой английский;) Im кодирует приложение для моей школы, которое дает студентам уведомление, если урок отменен. Моя школа обновляет альтернативный план в Интернете. Это файл .htm. (http://www.dbg-filderstadt.de/fileadmin/dateien/Dokumente/w00000.htm)Сохраните код сума для String

Итак, дело в том, что я новичок в кодировании Android/Java, и я не знаю, как получить информацию/исходный код веб-сайта, сохраненного в String.

Не могли бы вы дать мне пример кода, как это сделать?

+0

Собираетесь ли вы отправить весь файл в виде уведомления? Не могли бы вы уведомить их о том, что произошли изменения, и вот где искать? – DanielM

+0

вы хотите отобразить содержимое URL-адреса?. откройте URL в браузере. эта ссылка поможет вам http://stackoverflow.com/questions/2201917/how-can-i-open-a-url-in-androids-web-browser-from-my-application – Signare

+0

http://stackoverflow.com/questions/11338486/how-to-save-html-page-file-in-applications-database-in-android что-то в этом роде? – BooNonMooN

ответ

0

Один способ следовать андроид документации для отправки запросов GET и использовать библиотеку Залп со следующим кодом:

// 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, и вы становитесь строкой (named response), которая является именно содержимым страницы, на которую вы сделали запрос. Таким образом, вы можете сохранить его в своей переменной и использовать его позже (например, я назвал эту переменную pageContent).

Я придаю вам ссылку на андроида документации, тоже: 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.+'

0

Если вы хотите просто сделать HTTP-соединение для загрузки HTML-файла, вы можете, например, использовать http://developer.android.com/reference/java/net/HttpURLConnection.html. Затем вам нужно будет прочитать входной поток из него и преобразовать его в строку, а затем, возможно, также проанализировать HTML некоторыми способами.

Однако обратите внимание, что наличие приложения, читающего HTML-ресурс из Интернета, на самом деле не является нормальным или предпочтительным способом сделать это, в идеале вы хотели бы, чтобы ваша информация была доступна через какой-то API. Загружая и анализируя HTML, ваше приложение становится зависимым от HTML-ресурса, который не меняется и не разбивает ваш синтаксический код и т. Д. Это действительно хрупка.

Смежные вопросы