GuzzleHttp не может отправить JSON, возвращает ошибку 500, Curl работает правильно - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь использовать Guzzle для отправки запроса:

    $client = new \GuzzleHttp\Client(['http_errors' => false]);
    $response = $client->request('POST', 'https://myserwer.com/sendQuery', [
        'headers' => [
            'Authorization' => 'Bearer ' . $access_token,
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        ['json' => ["username" => "cxzczxc", "firstName" => "dsadascxzc", "lastName" => "dsadascxzc", "email" => "dsadascxzc@wp.pl","enabled" => "true"]]
    ]);

    $status = $response -> getStatusCode();

    if ($status === 201) {
        return response()->json("Register user OK", 200);
    } else {
        return "error_code: " . $status;
    }

Я конвертирую JSON, используя этот ответ .Это то же самое в документации :

$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Но ошибка возврата Guzzle: 500:

Ошибка сервера: POST https://myserwer.com/sendQuery в результатев ответе 500 Internal Server Error

Поэтому я использовал CURL:

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://myserwer.com/sendQuery",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "{\"username\":\"cxzczxc\",\"firstName\":\"dsadascxzc\",\"lastName\":\"dsadascxzc\",\"email\":\"dsadascxzc@wp.pl\",\"enabled\":\"true\"}",
    CURLOPT_HTTPHEADER => array(
    "authorization: Bearer " . $access_token,
    "content-type: application/json"
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    return "error_code: " . $err;
} else {
    return response()->json("Register user OK", 200);
}

Этот код работает правильно. Почему Guzzle не может отправить запрос?

...