Как сделать запрос POST через GuzzleRequest?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как сделать запрос POST через GuzzleRequest?

Сообщение Anonymous »

Я пытаюсь настроить API.
Я не знаю, как создать экземпляр GuzzleRequest для публикации данных и создания заголовка авторизации для API.Это созданный GuzzleRequest
$request = new GuzzleRequest(
method: 'POST',
uri: $url,
//body:null,
);

Внутри созданного мной экземпляра GuzzleRequest я хочу передать данные внутри параметров тела.
Параметры тела могут принимать: string|resources|null|StreamInterface, но это данные, которые я хочу передать:
{
"payItemId": "S-112-948-MTNMOMO-20052-200040001-1",
"amount": 1000
}

Это полный код функции:
function headerauthorization()
{

$token = "716c3fcf-98bd-435e-a16d-befc3b96da35";
$secret = "9f96a7ed-338f-4609-83f8-27ce60fe87f4";
//$url = "https://s3p.smobilpay.staging.maviance. ... ceid=20052";
$url = "https://s3p.smobilpay.staging.maviance.info/v2/quotestd";

$config = new \Maviance\S3PApiClient\Configuration();
$config->setHost($url);
$client = new \Maviance\S3PApiClient\ApiClient($token, $secret, ['verify' => false]);

$request = new GuzzleRequest(
method: 'POST',
uri: $url,
//body:null,
);

$curl = curl_init();
curl_setopt_array(
$curl,
array(
CURLOPT_URL => 'https://s3p.smobilpay.staging.maviance.info/v2/quotestd',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => array(
'Authorization:' . $client->buildAuthorizationHeader($request) . ''
),
)
);
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode($response, true);

}

Почему я использую GuzzleRequest? Функция buildAuthorizationHeader($request) принимает в качестве параметров только тип RequestInterface. Сначала я попробовал следующий код (метод GET и нет параметров тела) для первого запроса API, и у меня он работает нормально. Но теперь у меня есть метод Post и параметры тела для вставки.
Это первый код, который у меня работает нормально
function headerauthorization()
{

$token = "716c3fcf-98bd-435e-a16d-befc3b96da35";
$secret = "9f96a7ed-338f-4609-83f8-27ce60fe87f4";
$url = "https://s3p.smobilpay.staging.maviance. ... ceid=20052";

$config = new \Maviance\S3PApiClient\Configuration();
$config->setHost($url);
$client = new \Maviance\S3PApiClient\ApiClient($token, $secret, ['verify' => false]);

$request = new GuzzleRequest(
method: 'GET',
uri: $url,
// headers: [],
// body: null,
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://s3p.smobilpay.staging.maviance. ... ceid=20052',
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(
'Authorization:'.$client->buildAuthorizationHeader($request).''
),
)
);
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode($response, true);
$payItemId = $response[0]["payItemId"];

}


Подробнее здесь: https://stackoverflow.com/questions/786 ... zlerequest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»