@@ -57,6 +57,7 @@ public static function forBaseUri(HttpClientInterface $client, string $baseUri,
57
57
*/
58
58
public function request (string $ method , string $ url , array $ options = []): ResponseInterface
59
59
{
60
+ $ e = null ;
60
61
$ url = self ::parseUrl ($ url , $ options ['query ' ] ?? []);
61
62
62
63
if (\is_string ($ options ['base_uri ' ] ?? null )) {
@@ -70,13 +71,18 @@ public function request(string $method, string $url, array $options = []): Respo
70
71
throw $ e ;
71
72
}
72
73
73
- [$ url , $ options ] = self ::prepareRequest ($ method , implode ('' , $ url ), $ options , $ this ->defaultOptionsByRegexp [$ this ->defaultRegexp ], true );
74
- $ url = implode ('' , $ url );
74
+ $ options = self ::mergeDefaultOptions ($ options , $ this ->defaultOptionsByRegexp [$ this ->defaultRegexp ], true );
75
+ if (\is_string ($ options ['base_uri ' ] ?? null )) {
76
+ $ options ['base_uri ' ] = self ::parseUrl ($ options ['base_uri ' ]);
77
+ }
78
+ $ url = implode ('' , self ::resolveUrl ($ url , $ options ['base_uri ' ] ?? null ));
75
79
}
76
80
77
81
foreach ($ this ->defaultOptionsByRegexp as $ regexp => $ defaultOptions ) {
78
82
if (preg_match ("{ {$ regexp }}A " , $ url )) {
79
- $ options = self ::mergeDefaultOptions ($ options , $ defaultOptions , true );
83
+ if (null === $ e || $ regexp !== $ this ->defaultRegexp ) {
84
+ $ options = self ::mergeDefaultOptions ($ options , $ defaultOptions , true );
85
+ }
80
86
break ;
81
87
}
82
88
}
0 commit comments