У меня есть запрос к почтальону, и он работает хорошо.
Ниже приведен URL-адрес моего поста и заголовки
Тогда вот мое тело содержания
Хорошо работает, когда я нажимаю кнопку «Отправить», возвращает правильный ресурс, однако, когда я пытаюсь сделать это в PHP, используя guzzlehttp / guzzle, он возвращает 422 или 400
* 1014.* Мой код
<code>$res = $client->request('POST', 'https://api.bigcommerce.com/stores/ny813bjwdy/v3/carts', [
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'X-Auth-Client' => "mzr2qe4qeweqwe",
'X-Auth-Token' => "nokrq2131qweqrqrqew"
],
'form_params' => [
'customer_id' => 1,
'line_items' => [
'quantity' => 1,
'product_id' => 97,
'list_price' => 200
]
]
]);
echo "<pre>";
print_r($res);
echo "
";
Неустранимая ошибка: Uncaught GuzzleHttp \ Exception \ ClientException: Ошибка клиента: POST https://api.bigcommerce.com/stores/ny813bjwdy/v3/carts
привела к ответу 400 Bad Request
: статус {)": 400," title ":" Неверный ввод "," type ":" https://developer.bigcommerce.com/api#api-status-codes","detail":"Synta (усечено ...) в C: \ www \ bomb-shelter \ http \ vendor \ guzzlehttp \ guzzle \ src\ Exception \ RequestException.php: 113 Трассировка стека: # 0 C: \ www \ бомбоубежище \ http \ vendor \ guzzlehttp \ guzzle \ src \ Middleware.php (66): GuzzleHttp \ Exception \ RequestException :: create (Object (GuzzleHttp \ Psr7 \ Request), Object (GuzzleHttp \ Psr7 \ Response)) # 1 C: \ www \ bomb-shelter \ http \ vendor \ guzzlehttp \ promises \ src \ Promise.php (203): GuzzleHttp \ Middleware :: GuzzleHttp{closure} (Object (GuzzleHttp \ Psr7 \ Response))
2 C: \ www \ бомбоубежище \ http \ vendor \ guzzlehttp \ promises \ src \ Promise.php (156):
GuzzleHttp \ Promise \ Promise :: callHandler (1, Объект (GuzzleHttp \ Psr7 \ Response), Массив) # 3 C: \ www \ bomb-shelter \ http \ vendor \ guzzlehttp \ promises \ src \ TaskQueue.php (47): GuzzleHttp \ Promise \ Promise :: Guzzl в C: \ www \ бомбоубежище \ http \ vendor \ guzzlehttp \ guzzle \ src \ Exception \ RequestException.php в строке 113
Я также попробовал GuzzleHttp\ RequestOptions :: JSON
<code>$res = $client->request('POST', 'https://api.bigcommerce.com/stores/ny813bjwdy/v3/carts', [
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'X-Auth-Client' => "mzr2qe4qeweqwe",
'X-Auth-Token' => "nokrq2131qweqrqrqew"
],
GuzzleHttp\RequestOptions::JSON => [
'customer_id' => 1,
'line_items' => [
'quantity' => 1,
'product_id' => 97,
'list_price' => 200
]
]
]);
echo "<pre>";
print_r($res);
echo "
";
, но возвращает 422
Неустранимая ошибка: Uncaught GuzzleHttp \ Exception \ ClientException: ошибка клиента: POST https://api.bigcommerce.com/stores/ny813bjwdy/v3/carts
привела к ответу 422 Unprocessable Entity
: {"status": 422, "title": "Отсутствующие или неправильные обязательные поля", "type": "https://developer.bigcommerce.com/api#api-status-co (усечено ...) в C: \ www \ bomb-shelter \ http \ vendor \ guzzlehttp \ guzzle \src \ Exception \ RequestException.php: 113 Трассировка стека: # 0 C: \ www \ бомбоубежище \ http \ vendor \ guzzlehttp \ guzzle \ src \ Middleware.php (66): GuzzleHttp \ Exception \ RequestException :: create (Object(GuzzleHttp \ Psr7 \ Request), объект (GuzzleHttp \ Psr7 \ Response)) # 1 C: \ www \ bomb-shelter \ http \ vendor \ guzzlehttp \ promises \ src \ Promise.php (203): GuzzleHttp \ Middleware ::GuzzleHttp {closure} (Объект (GuzzleHttp \ Psr7 \ Response))
2 C: \ www \ бомбоубежище \ http \ vendor \ guzzlehttp \ promises \ src \ Promise.php (156):
GuzzleHttp \ Promise \ Promise :: callHandler (1, Объект (GuzzleHttp \ Psr7 \ Response), Массив) # 3 C: \ www \ bomb-shelter \ http \ vendor \ guzzlehttp \ promises \ src \ TaskQueue.php (47): GuzzleHttp \ Promise \ Promя в C: \ www \ бомбоубежище \ http \ vendor \ guzzlehttp \ guzzle \ src \ Exception \ RequestException.php в строке 113
Есть идеи, как заставить его работать на жрет?или другой PHP HTTP клиент?