@@ -168,21 +168,23 @@ protected function prepareOptions(): void
168168 */
169169 protected function extractFromResponseHeaders ($ response , &$ headers , &$ statusCode ): void
170170 {
171- $ _headers = stream_get_meta_data ($ response )['wrapper_data ' ];
172- $ statusCode = array_filter ($ _headers , function (string $ header ) {
173- return false !== stripos ($ header , 'HTTP/ ' );
174- });
175-
176- $ statusCode = array_pop ($ statusCode ) ?: 'HTTP/1.1 200 OK ' ;
177- $ statusCode = (int )(explode (' ' , $ statusCode )[1 ] ?? StatusCode::OK );
178-
179- foreach ($ _headers as $ header ) {
180- try {
181- [$ k , $ v ] = explode (': ' , $ header , 2 );
171+ try {
172+ $ _headers = stream_get_meta_data ($ response )['wrapper_data ' ];
173+ $ statusCode = array_filter ($ _headers , function (string $ header ) {
174+ return false !== stripos ($ header , 'HTTP/ ' , 0 );
175+ });
176+ $ statusCode = array_pop ($ statusCode ) ?: 'HTTP/1.1 200 OK ' ;
177+ $ statusCode = (int )(explode (' ' , $ statusCode )[1 ] ?? StatusCode::OK );
178+
179+ foreach ($ _headers as $ header ) {
180+ [$ k , $ v ] = explode (': ' , $ header , 2 ) + [1 => null ];
181+ if (null === $ v ) {
182+ continue ;
183+ }
182184 $ headers [$ k ] = $ v ;
183- } catch (Throwable $ e ) {
184- continue ;
185185 }
186+ } finally {
187+ unset($ _headers , $ header , $ k , $ v );
186188 }
187189 }
188190}
0 commit comments