Guzzle - aufgerufene URL auslesen?

  • Hi,

    wie rufe ich denn in Guzzle die finale, aufgerufene URL inklusive aller Parameter aus (bevor der Request staffindet, also ohne mögliche Redirects)?

    Code:

    PHP
            $params = [
                'query' => [
                    'pageSize' => 5000,
                    'apiKey' => self::API_KEY,
                    'from' => $from
                ]
            ];
    
            $client = HttpFactory::getDefaultClient();
            $response = $client->get(self::API_URL, $params);
  • Hallo,

    mach besser einen PSR-7 Request und bau die URL vorher selbst zusammen:

    PHP
    $params = [
        'pageSize' => 5000,
        'apiKey' => self::API_KEY,
        'from' => $from
    ];
    $url = self::API_URL . '?' . \http_build_query($params, '', '&', \PHP_QUERY_RFC3986);
    
    $client = \wcf\system\io\HttpFactory::getDefaultClient();
    $request = new \GuzzleHttp\Psr7\Request('GET', $url);
    $response = $client->send($request);

    In der Variable $url hast du dann auch direkt die URL stehen, welche aufgerufen wurde.

    Edit: Versuche primär PSR-7 zu verwenden, siehe dazu auch den folgenden Beitrag von Tim:

    Tim Düsterhus
    27. Januar 2021 um 10:42
    • Offizieller Beitrag

    Hallo,

    mach besser einen PSR-7 Request und bau die URL vorher selbst zusammen:

    danke, genau so. Wenn man möchte, dann kann man auch sowas wie GuzzleHttp\Psr7\Uri::composeComponents nutzen, das kümmert sich dann um die Details wie das Fragezeichen:

    psr7/Uri.php at f8ae7cb4c654e9d6f31c10271321ea99f7ca8ae9 · guzzle/psr7
    PSR-7 HTTP message library. Contribute to guzzle/psr7 development by creating an account on GitHub.
    github.com

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!