Я запрашиваю файлы с HTTP-сервера IBM через сервер приложений Websphere (7FP19). Для большинства файлов я получаю заголовок content-length, но для некоторых нет. Я обнаружил, что когда я устанавливаю последнее измененное значение в запросе на «0», тогда я получаю длину содержимого для всех файлов.
Это кажется мне немного странным. Кто-нибудь знает, почему это может быть или это просто совпадение?
Вот код:
connection = (HttpURLConnection) url.openConnection();
for (String value : cookies.values()) {
connection.addRequestProperty("Cookie", value); //$NON-NLS-1$
}
connection.setDoOutput(true);
connection.setRequestProperty("User-Agent", USER_AGENT); //$NON-NLS-1$
//connection.setIfModifiedSince(localLastModified);
connection.setIfModifiedSince(0);
OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
wr.write(post);
wr.flush();
wr.close();
....
// set file attributes
long remoteDate = connection.getLastModified();
if(rc == 304)
data.lastModified = localLastModified;
else
data.lastModified = remoteDate;
data.retCode = connection.getResponseCode();
data.contentType = connection.getContentType();
data.contentEncoding = connection.getContentEncoding();
int expectedLength = connection.getContentLength();
if(expectedLength < 0) {
log.warn("Expected length: " + expectedLength);
}
UPDATE
это работало на Wesphere FP19. Я вернулся на FP15 и проблема исчезла. Длина всегда возвращается.