@@ -57,6 +57,7 @@ public static function forBaseUri(HttpClientInterface $client, string $baseUri,
5757 */
5858 public function request (string $ method , string $ url , array $ options = []): ResponseInterface
5959 {
60+ $ e = null ;
6061 $ url = self ::parseUrl ($ url , $ options ['query ' ] ?? []);
6162
6263 if (\is_string ($ options ['base_uri ' ] ?? null )) {
@@ -70,13 +71,18 @@ public function request(string $method, string $url, array $options = []): Respo
7071 throw $ e ;
7172 }
7273
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 ));
7579 }
7680
7781 foreach ($ this ->defaultOptionsByRegexp as $ regexp => $ defaultOptions ) {
7882 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+ }
8086 break ;
8187 }
8288 }
0 commit comments