Skip to content

Commit

Permalink
Merge pull request #11969 from neosis91/dev
Browse files Browse the repository at this point in the history
DownloaderImpl: Auto-close resources and simplify header setting
  • Loading branch information
Profpatsch authored Jan 31, 2025
2 parents 47263f5 + 410c015 commit ba86ce1
Showing 1 changed file with 25 additions and 29 deletions.
54 changes: 25 additions & 29 deletions app/src/main/java/org/schabi/newpipe/DownloaderImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -137,46 +137,42 @@ public Response execute(@NonNull final Request request)
}

final okhttp3.Request.Builder requestBuilder = new okhttp3.Request.Builder()
.method(httpMethod, requestBody).url(url)
.method(httpMethod, requestBody)
.url(url)
.addHeader("User-Agent", USER_AGENT);

final String cookies = getCookies(url);
if (!cookies.isEmpty()) {
requestBuilder.addHeader("Cookie", cookies);
}

for (final Map.Entry<String, List<String>> pair : headers.entrySet()) {
final String headerName = pair.getKey();
final List<String> headerValueList = pair.getValue();
headers.forEach((headerName, headerValueList) -> {
requestBuilder.removeHeader(headerName);
headerValueList.forEach(headerValue ->
requestBuilder.addHeader(headerName, headerValue));
});

try (
okhttp3.Response response = client.newCall(requestBuilder.build()).execute()
) {
if (response.code() == 429) {
throw new ReCaptchaException("reCaptcha Challenge requested", url);
}

if (headerValueList.size() > 1) {
requestBuilder.removeHeader(headerName);
for (final String headerValue : headerValueList) {
requestBuilder.addHeader(headerName, headerValue);
String responseBodyToReturn = null;
try (ResponseBody body = response.body()) {
if (body != null) {
responseBodyToReturn = body.string();
}
} else if (headerValueList.size() == 1) {
requestBuilder.header(headerName, headerValueList.get(0));
}

final String latestUrl = response.request().url().toString();
return new Response(
response.code(),
response.message(),
response.headers().toMultimap(),
responseBodyToReturn,
latestUrl);
}

final okhttp3.Response response = client.newCall(requestBuilder.build()).execute();

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);
}
}

0 comments on commit ba86ce1

Please sign in to comment.