Перевести запрос керла на жрать



Я пытаюсь использовать Guzzle вместо прямого использования cURL для достижения и HTTP-запроса. Как я могу сделать этот же тип запроса, но с жадностью? Или мне следует просто придерживаться завивки?



$ch = curl_init();
// Set the URL
curl_setopt($ch, CURLOPT_URL, $url);
// don't verify SSL certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// Return the contents of the response as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Follow redirects
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// Set up authentication
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$token:X");


Вот как я попал. Я продолжаю работать в ошибке 401 Unauthorized. Я знаю, что у меня есть верительные грамоты. Что заставляет меня думать, что я не на правильном пути, так это то, что Guzzle docs заявляет: auth в настоящее время поддерживается только при использовании обработчика cURL, но создает замену, которую можно использовать с любым обработчиком HTTP планируется. но из моего понимания жрут дефолты с завитком.



$guzzleData = [
'auth' => [$token, 'X'],
'allow_redirects' => true,
'verify' => false,
];

$client = new GuzzleHttpClient();
$request = $client->get($url, $guzzleData);
$response = $request->send();
327   2  

2 ответов:

Вот решение:

$client = new \Guzzle\Http\Client();
$request = $client->get($url);

$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false);
$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false);
$request->getCurlOptions()->set(CURLOPT_RETURNTRANSFER, true);
$request->getCurlOptions()->set(CURLOPT_FOLLOWLOCATION, true);
$request->getCurlOptions()->set(CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$request->getCurlOptions()->set(CURLOPT_USERPWD, "$token:X");

$response = $request->send();

Решение, которое я смог получить, работая на Guzzle6:

$headers = array();
$headers['grant_type'] = 'client_credentials';
$headers['client_id'] = $clientid;
$headers['client_secret'] = $clientSecret;

$response = $this->client->post($urlAuth, ['form_params' => $headers]);
$output = $response->getBody()->getContents();

То есть массив заголовков должен быть обернут в 'form_params'

Comments

    Ничего не найдено.