Amp\Artax\Client::request PHP Method

request() public method

Asynchronously request an HTTP resource
public request ( $uriOrRequest, array $options = [] ) : Amp\Promise
$options array An array specifying options applicable only for this request
return Amp\Promise A promise to resolve the request at some point in the future
    public function request($uriOrRequest, array $options = [])
    {
        $promisor = new Deferred();
        try {
            $cycle = new RequestCycle();
            $cycle->futureResponse = $promisor;
            list($cycle->request, $cycle->uri) = $this->generateRequestFromUri($uriOrRequest);
            $cycle->options = $options ? array_merge($this->options, $options) : $this->options;
            $body = $cycle->request->getBody();
            if ($body instanceof AggregateBody) {
                $this->processAggregateBody($cycle, $body);
            } else {
                $this->finalizeRequest($cycle);
            }
        } catch (\Exception $e) {
            $promisor->fail($e);
        }
        return $promisor->promise();
    }

Usage Example

Example #1
0
 public function getAccessTokenFromCode(string $code)
 {
     $body = (new FormBody())->addField("redirect_uri", $this->redirectUri)->addField("client_id", $this->clientId)->addField("client_secret", $this->clientSecret)->addField("code", $code);
     $request = (new Request())->setMethod("POST")->setUri($this->accessTokenUrl)->setBody($body);
     /** @var HttpResponse $response */
     $response = (yield $this->client->request($request));
     $body = $response->getBody();
     parse_str($body, $data);
     if (!isset($data["access_token"])) {
         throw new OAuthException($data["error_description"] ?? $data["error"] ?? "no access token provided");
     }
     return $data["access_token"];
 }
All Usage Examples Of Amp\Artax\Client::request