From ad5ca4eced14eed42ff86abfa68f90f3e20ebff0 Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Sun, 9 Feb 2025 22:06:41 +0100 Subject: [PATCH] Backport/Sync code from NewPipe implementation --- .../downloader/DownloaderTestImpl.java | 63 +++++++++---------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/extractor/src/test/java/org/schabi/newpipe/downloader/DownloaderTestImpl.java b/extractor/src/test/java/org/schabi/newpipe/downloader/DownloaderTestImpl.java index 0bcd313e9..467e6a308 100644 --- a/extractor/src/test/java/org/schabi/newpipe/downloader/DownloaderTestImpl.java +++ b/extractor/src/test/java/org/schabi/newpipe/downloader/DownloaderTestImpl.java @@ -22,8 +22,8 @@ public final class DownloaderTestImpl extends Downloader { /** * Should be the latest Firefox ESR version. */ - private static final String USER_AGENT - = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"; + private static final String USER_AGENT = + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"; private static DownloaderTestImpl instance; private final RateLimitedClientWrapper clientWrapper; @@ -65,41 +65,36 @@ public final class DownloaderTestImpl extends Downloader { } final okhttp3.Request.Builder requestBuilder = new okhttp3.Request.Builder() - .method(httpMethod, requestBody).url(url) - .addHeader("User-Agent", USER_AGENT); + .method(httpMethod, requestBody) + .url(url) + .addHeader("User-Agent", USER_AGENT); - for (final Map.Entry> pair : headers.entrySet()) { - final String headerName = pair.getKey(); - final List headerValueList = pair.getValue(); + headers.forEach((headerName, headerValueList) -> { + requestBuilder.removeHeader(headerName); + headerValueList.forEach(headerValue -> + requestBuilder.addHeader(headerName, headerValue)); + }); - if (headerValueList.size() > 1) { - requestBuilder.removeHeader(headerName); - for (final String headerValue : headerValueList) { - requestBuilder.addHeader(headerName, headerValue); - } - } else if (headerValueList.size() == 1) { - requestBuilder.header(headerName, headerValueList.get(0)); + try (okhttp3.Response response = + clientWrapper.executeRequestWithLimit(requestBuilder.build()) + ) { + if (response.code() == 429) { + throw new ReCaptchaException("reCaptcha Challenge requested", url); } + + String responseBodyToReturn = null; + try (ResponseBody body = response.body()) { + if (body != null) { + responseBodyToReturn = body.string(); + } + } + + return new Response( + response.code(), + response.message(), + response.headers().toMultimap(), + responseBodyToReturn, + response.request().url().toString()); } - - final okhttp3.Response response = - clientWrapper.executeRequestWithLimit(requestBuilder.build()); - - if (response.code() == 429) { - response.close(); - - throw new ReCaptchaException("reCaptcha Challenge requested", url); - } - - final ResponseBody body = response.body(); - String responseBodyToReturn = null; - - if (body != null) { - responseBodyToReturn = body.string(); - } - - final String latestUrl = response.request().url().toString(); - return new Response(response.code(), response.message(), response.headers().toMultimap(), - responseBodyToReturn, latestUrl); } }