/ / Чому HttpURLConnection не повторно надсилає вміст PUT після повторного з'єднання після відповіді 401? - java, android, httpurlconnection

Чому HttpURLConnection не повторно надсилає вміст PUT після повторного з'єднання після відповіді 401? - java, android, httpurlconnection

У мене трохи дивовижна проблема з HttpURLConnection на Android (рівень API 7). Я використовую базову автентифікацію, налаштовану за допомогою автентифікатора за замовчуванням так:

Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password.toCharArray());
}
});

Я виконую стандартний запит таким чином:

public InputStream put(String type, String name, String xml){

try{
String urlString = this.getURLString(type,name);
URL url = new URL(urlString);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("PUT");
OutputStreamWriter out = new OutputStreamWriter(
urlConnection.getOutputStream());
out.write(xml);
out.close();
urlConnection.getInputStream();
urlConnection.disconnect();
return null;

}
catch(Exception e){
Log.e(TAG,e.getMessage());
return urlConnection.getErrorStream();
}
}

Пакетний слід показує, що вміст єнадісланий із запитом HTTP. Після цього я отримую 401 Unauthorized з сервера та повторно надішлю відповідь. На цей раз облікові дані відправляються, як я очікував, але вміст більше не надсилається. Тепер він містить пустий запит PUT з вмістом-довжиною 0.

Хто-небудь бачив це раніше, і як це виправити?

Дякую, Шон

Відповіді:

1 для відповіді № 1

У кінцевому підсумку це вирішили, не використовуючи Генератор кодів, і замість того, щоб додати основний заголовок авторизації вручну до HttpURLConnection.