У меня есть фрагмент скручивания, который работает, но я получаю ошибку 400 с Guzzle, почему? - PullRequest
0 голосов
/ 23 января 2020

Кто-нибудь может увидеть, что я могу здесь делать неправильно? Curl работает, но Guzzle (v6.3) получает ошибку 400.

Завиток был сгенерирован почтальоном:

Завиток:

    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => "https://unnamed-website.com/api2/v2/charges?chargeId=273628584&paymentGate=inovio",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_HTTPHEADER => array(
            "app-token: toktoktoktoktotkoktoktokt",
            "Content-type: application/json",
            "Authorization: Basic MDFkNWJiMTllYTdlZjVjODYzYTVjYjI3ZjUzNWY4NmM6YzFhMzRlNWJkZGYyMzljZTFmZDcwZjNiZDk0Y2Q4ZjA="
        ),
    ));
    $response = curl_exec($curl);

Вывод:


Жадность:

$guzzle = new Client();
$request = $guzzle->get("https://unnamed-website.com/api2/v2/charges?chargeId=273628584&paymentGate=inovio",
[
    'headers' => [
        "app-token" => "toktoktoktoktotkoktoktokt",
        "Content-type" => "application/json",
        "Authorization" => "Basic MDFkNWJiMTllYTdlZjVjODYzYTVjYjI3ZjUzNWY4NmM6YzFhMzRlNWJkZGYyMzljZTFmZDcwZjNiZDk0Y2Q4ZjA="
    ]
]);
$response = $request->send();

Вывод:

   Client error response
   [status code] 400
   [reason phrase] Bad Request

Я даже пытался добавить что-то вроде этого:

    $request = $guzzle->get("https://unnamed-website.com/api2/v2/charges?chargeId=273628584&paymentGate=inovio",
        [
            'curl' => [
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                ],
            'headers' => [
                "app-token" => "toktoktoktoktotkoktoktokt",
                "Content-type" => "application/json",
                "Authorization" => "Basic MDFkNWJiMTllYTdlZjVjODYzYTVjYjI3ZjUzNWY4NmM6YzFhMzRlNWJkZGYyMzljZTFmZDcwZjNiZDk0Y2Q4ZjA="
            ]
            ]);

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Мои коллеги-разработчики покопались в этом, когда я опубликовал его в slack, и они обнаружили проблему. Я использовал use Guzzle\Http\Client;, когда мне следовало использовать use GuzzleHttp\Client; ... первое существо было доступно из-за множества неуправляемых пакетов поставщиков, лежащих внутри гигантской проприетарной инфраструктуры.

0 голосов
/ 23 января 2020

Жрать можно так:

<?php
    $client = new GuzzleHttp\Client();
    $response = $client->request('GET',"https://unnamed-website.com/api2/v2/charges?chargeId=273628584&paymentGate=inovio",[
        'headers' => [
            "app-token" => "toktoktoktoktotkoktoktokt",
            "Content-type" => "application/json",
            "Authorization" => "Basic MDFkNWJiMTllYTdlZjVjODYzYTVjYjI3ZjUzNWY4NmM6YzFhMzRlNWJkZGYyMzljZTFmZDcwZjNiZDk0Y2Q4ZjA="
        ]
    ]);
    $response = $request->send();
    $result = json_decode($response->getBody()->getContents());
?>
...