Skip to content

Commit ba86ce1

Browse files
authored
Merge pull request #11969 from neosis91/dev
DownloaderImpl: Auto-close resources and simplify header setting
2 parents 47263f5 + 410c015 commit ba86ce1

File tree

1 file changed

+25
-29
lines changed

1 file changed

+25
-29
lines changed

app/src/main/java/org/schabi/newpipe/DownloaderImpl.java

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -137,46 +137,42 @@ public Response execute(@NonNull final Request request)
137137
}
138138

139139
final okhttp3.Request.Builder requestBuilder = new okhttp3.Request.Builder()
140-
.method(httpMethod, requestBody).url(url)
140+
.method(httpMethod, requestBody)
141+
.url(url)
141142
.addHeader("User-Agent", USER_AGENT);
142143

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

148-
for (final Map.Entry<String, List<String>> pair : headers.entrySet()) {
149-
final String headerName = pair.getKey();
150-
final List<String> headerValueList = pair.getValue();
149+
headers.forEach((headerName, headerValueList) -> {
150+
requestBuilder.removeHeader(headerName);
151+
headerValueList.forEach(headerValue ->
152+
requestBuilder.addHeader(headerName, headerValue));
153+
});
154+
155+
try (
156+
okhttp3.Response response = client.newCall(requestBuilder.build()).execute()
157+
) {
158+
if (response.code() == 429) {
159+
throw new ReCaptchaException("reCaptcha Challenge requested", url);
160+
}
151161

152-
if (headerValueList.size() > 1) {
153-
requestBuilder.removeHeader(headerName);
154-
for (final String headerValue : headerValueList) {
155-
requestBuilder.addHeader(headerName, headerValue);
162+
String responseBodyToReturn = null;
163+
try (ResponseBody body = response.body()) {
164+
if (body != null) {
165+
responseBodyToReturn = body.string();
156166
}
157-
} else if (headerValueList.size() == 1) {
158-
requestBuilder.header(headerName, headerValueList.get(0));
159167
}
160168

169+
final String latestUrl = response.request().url().toString();
170+
return new Response(
171+
response.code(),
172+
response.message(),
173+
response.headers().toMultimap(),
174+
responseBodyToReturn,
175+
latestUrl);
161176
}
162-
163-
final okhttp3.Response response = client.newCall(requestBuilder.build()).execute();
164-
165-
if (response.code() == 429) {
166-
response.close();
167-
168-
throw new ReCaptchaException("reCaptcha Challenge requested", url);
169-
}
170-
171-
final ResponseBody body = response.body();
172-
String responseBodyToReturn = null;
173-
174-
if (body != null) {
175-
responseBodyToReturn = body.string();
176-
}
177-
178-
final String latestUrl = response.request().url().toString();
179-
return new Response(response.code(), response.message(), response.headers().toMultimap(),
180-
responseBodyToReturn, latestUrl);
181177
}
182178
}

0 commit comments

Comments
 (0)