Как правильно вывести указанный ответ c cURL на запрос POST - PullRequest
0 голосов
/ 31 января 2020

Я выполняю пост-запрос cURL, который, кажется, ударил по URL и вернул ответ. Тем не менее, меня убеждают, что я неправильно обрабатываю вывод запроса и выдает ошибку, которую не понимаю. Я чрезвычайно новичок в cURL, и если бы кто-нибудь мог указать мне правильное направление, я был бы признателен.

$curl = curl_init();

$headers = array(
    'Content-Type: application/json',
    'X-Requested-With: XMLHttpRequest',
);

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'XXX',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => [
        client_id => 'XXX',
        client_secret => 'XXX',
        member_id => 'XXX'
    ],
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC
]);

$resp = curl_exec($curl);

curl_close($curl);

var_dump(json_decode($resp, true));

Это приводит к следующим ошибкам:

{"errors":{"":["Input string '--------------------------cec6101ba64bcb7f' is not a valid number. Path '', line 1, position 42."]},"title":"One or more validation errors occurred.","status":400,"traceId":"80031695-0002-ef00-b63f-84710c7967bb"}

1 Ответ

0 голосов
/ 31 января 2020
$curl = curl_init();

$headers = array(
    'Content-Type: application/json',
    'X-Requested-With: XMLHttpRequest',
);
//////
 Adding this and using json_encode allowed for the request to be properly sent with the required id's and secret tokens.
//////
$data = array(
    "ClientId" => "$api_clientId" ,
    "ClientSecret" => "$api_clientSecret",
    "MemberId" => "$api_memberId"
);
$data_string = json_encode($data);

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'https://cors-anywhere.herokuapp.com/https://staging.micromerchantsystems.com/authenticationservice/api/GateKeeper/createtoken',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => $data_string,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC
]);

$resp = curl_exec($curl);

curl_close($curl);

var_dump(json_decode($resp, true));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...