1
私はAndroidプログラミングを初めて使い、XMLデータを取得しようとするとgetContentLength()
が-1
を返す理由について助けを求めます。getContentLengthはXMLファイルを取得しようとすると-1を返します
XMLのURLが
String url = "http://www.systembolaget.se/api/assortment/products/xml";
int count;
try {
URL url = new URL(aurl[0]);
URLConnection conexion = url.openConnection();
conexion.connect();
int lengthOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lengthOfFile);
InputStream input = new BufferedInputStream(url.openStream(), 10240);
File fileDir = getFileFolder(AndroAsync.this);
File file = new File (fileDir, "systembolaget.xml");
FileOutputStream outputStream = new FileOutputStream(file);
byte data[] = new byte[4096];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/ lengthOfFile));
outputStream.write(data, 0, count);
}
outputStream.flush();
outputStream.close();
input.close();
すべてのヘルプははるかに高く評価され
ありがとうです! :)
「フィールドが設定されていないか、intとして表現できない場合-1' '」それが理由ですので、 –
はい私は、ドキュメントを読んだが、私は、彼らが何を意味するかを取得していないドキュメントは、それを返すと言いますそれはintとして表現することはできません。 – speccaN
intには大きすぎるとintとして表現できませんが、まったく設定されていない可能性が高くなります。 – EJP