@@ -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