[http] Support all 2xx response codes (#12594)
* [http] Add tests * [http] Treat all success codes as such * All 2xx http codes mean success, so treat them the same way 200 is. Fixes #11369 Signed-off-by: Corubba Smith <corubba@gmx.de>
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
package org.openhab.binding.http.internal.http;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -63,18 +64,11 @@ public class HttpResponseListener extends BufferingResponseListener {
|
||||
logger.warn("Requesting '{}' (method='{}', content='{}') failed: {}", request.getURI(), request.getMethod(),
|
||||
request.getContent(), result.getFailure().toString());
|
||||
future.complete(null);
|
||||
} else if (HttpStatus.isSuccess(response.getStatus())) {
|
||||
String encoding = Objects.requireNonNullElse(getEncoding(), fallbackEncoding);
|
||||
future.complete(new Content(getContent(), encoding, getMediaType()));
|
||||
} else {
|
||||
switch (response.getStatus()) {
|
||||
case HttpStatus.OK_200:
|
||||
byte[] content = getContent();
|
||||
String encoding = getEncoding();
|
||||
if (content != null) {
|
||||
future.complete(
|
||||
new Content(content, encoding == null ? fallbackEncoding : encoding, getMediaType()));
|
||||
} else {
|
||||
future.complete(null);
|
||||
}
|
||||
break;
|
||||
case HttpStatus.UNAUTHORIZED_401:
|
||||
logger.debug("Requesting '{}' (method='{}', content='{}') failed: Authorization error",
|
||||
request.getURI(), request.getMethod(), request.getContent());
|
||||
|
||||
Reference in New Issue
Block a user