Как бы я сделал такой же запрос локона в чем-то вроде Guzzle? - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть этот php запрос curl, который я наткнулся на это работает, но хотел бы использовать что-то вроде Guzzle и не могу понять, как сделать преобразование. Все, что я пытаюсь, дает мне код состояния 400, Плохие данные аутентификации.

Любая помощь или ссылки будут высоко оценены.

$header =  array($this->oauth, 'Expect:' );

$header['Content-Type'] = $multipart ? 'multipart/form-data' : 'application/x-www-form-urlencoded';

$options = [
    CURLOPT_HTTPHEADER => $header,
    CURLOPT_HEADER => false,
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => $return,
    CURLOPT_TIMEOUT => 30,
];

if (!is_null($this->postFields)){
    $options[CURLOPT_postFields] = http_build_query($this->postFields, '', '&');
}
else if ($this->getField !== ''){

    $options[CURLOPT_URL] .= $this->getField;
}

$feed = curl_init();
curl_setopt_array($feed, $options);
$json = curl_exec($feed);

// $this->httpStatusCode = curl_getinfo($feed, CURLINFO_HTTP_CODE);

if (($error = curl_error($feed)) !== '')
{
    curl_close($feed);

    throw new \Exception($error);
}

curl_close($feed)

1 Ответ

0 голосов
/ 01 февраля 2020

Сначала установите жадность и используйте такой код

    $client = new \GuzzleHttp\Client();
    $header =  array($this->oauth, 'Expect:' );

    $header['Content-Type'] = $multipart ? 'multipart/form-data' : 
'application/x-www-form-urlencoded';

    try
            {
                $response = $client->request('GET', $url, [ 'headers' => $header]);


            }
            catch(\GuzzleHttp\Exception\ClientException $e)
            {
                return response(['status' => 0, 'error' => $e->getMessage()]);
            }
            catch(\GuzzleHttp\Exception\ServerException $e)
            {
               return response(['status' => 0, 'error' => 'Something went wrong']);
            }
...