オフラインの sax 解析のために、指定された Web サービスの URL を xml ファイルとして保存したいと思います。
オンラインでは、指定された url を解析するために SAX パーサーを使用しています。
URL sourceUrl = new URL("http://www.example.com/mobile/eventinfo.php?id=20);
InputSource inputSource = new InputSource(sourceUrl.openStream());
inputSource.setEncoding("ISO-8859-1");
そのために、上記のようにurlからinputsourseを取得しており、オフライン解析のためにそのinputsourseを.xmlファイルとして保存したいと考えています。
ここで、ユーザーは初めてオンラインでアプリケーションをロードする必要があります。アプリケーション内では、オフライン機能を提供しています。ユーザーがアプリをオフラインに設定した場合、inputsourse は xml ファイルをローカル メモリに保存する必要があります。
ユーザーがオフラインでアプリケーションを起動すると、アプリケーションは保存された xml ファイルからデータを解析する必要があります。
ユーザーがオンラインでアプリケーションを起動した場合、データは URL から解析する必要があります。
誰でもここで私を助けたり、知識を共有したりできますか
次のコードのようなxmlファイルを生成しています
try {
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.connect();
int responseCode = connection.getResponseCode();
if(responseCode == 200){
InputStream inputStream = connection.getInputStream();
int size = connection.getContentLength();
FileOutputStream fileOutputStream = new FileOutputStream(new File(getCacheDir(),filename));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String ch = null;
while((ch = bufferedReader.readLine()) != null){
fileOutputStream.write(ch.getBytes());
}
}else {
}
}
しかし、 NetworkonMainThreadException として例外を発生させます
connection.connect();
前もって感謝します。