0

私の使命は、Android から Web サイトの XML を解析することです。XML を文字列に貼り付けてから、それを InputStream に変換して解析すると、すべて正常に動作します。しかし、それを使用して XML をダウンロードしようとするとHttpURLConnection、「半分」しかダウンロードされず、最初と最後にルート要素といくつかの属性がスキップされます。

解析したいものは次のようになります。

<Page xmlns:i... xmlns="...">
<Body>...</Body>
<Contact i:nil=".."/>
<ID>...</ID>
<Date>...</Date>
<Summary>..</Summary>
<Title>...</Title>
</Page>

ダウンロードして印刷したときに得られるもの:

<ID>...</ID>
<Date>...</Date>
<Summary>..</Summary>
<Title>...</Title

したがって、期待どおりの結果が得られないため、解析は失敗します。ダウンロードするための私のコード:

URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000 /* milliseconds */);
conn.setConnectTimeout(25000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setUseCaches(true);
conn.connect();
InputStream stream = conn.getInputStream();
return stream;      

実際にアクセスできるのに、ネットから XML ページ全体をダウンロードしないのはなぜですか?

4

1 に答える 1

0

次の行を追加すると、問題は修正されました。

conn.setRequestProperty("Content-Type", " application/xml; charset=utf-8");

知っておくと良い。

于 2013-06-11T19:56:53.657 に答える