GuzzleHttp выдает мне ошибку 500Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 GuzzleHttp выдает мне ошибку 500

Сообщение Anonymous »

Я пытаюсь использовать GuzzleHttp с Magento для обновления каталога продуктов.

Я использую запрос пула для получения данных из базы данных и пытаюсь опубликовать их в API Magento

Код: Выделить всё

$apiUrl = 'http://xxx.xxxxx.xxx';

$middleware = new Oauth1([
'consumer_key'    => '-------------------------------',
'consumer_secret' => '-------------------------------',
'token'           => '-------------------------------',
'token_secret'    => '-------------------------------'
]);
$stack->push($middleware);

$client = new Client();

$clientUpdate = new Client([
'base_uri' => $apiUrl,
'handler' => $stack,
'auth' => 'oauth'
]);

$mapper = new JsonMapper();

$requests = function ($total) {
$uri = 'http://10.0.0.114:15021/myservice';

for ($i = 1; $i  3,
'fulfilled' => function ($response, $index) {

global $clientUpdate, $mapper;

$productsArray = $mapper->mapArray(
json_decode($response->getBody($asString = TRUE)), new ArrayObject(), 'ProductGo'
);

$product = new Product();
$stock = new StockData();

foreach($productsArray as &$value){

$product->type_id = "simple";
$product->attribute_set_id = 4;
$product->sku = $value->xxxxxxxxxxxxxxx;
$product->weight = 1;
$product->name = $value->xxxxxxxx;
$product->price = $value->xxxxxxxx;
$product->status = 1;
$product->visibility =4;
$product->tax_class_id = 4;
$product->description = $value->xxxxxxx;
$product->short_description = $value->xxxxxx;

$stock->qty = $value->xxxxx;
$stock->min_qty = "0";
$stock->is_qty_decimal = 0;
$stock->is_in_stock = 1;

$product->stock_data = (object) array_filter((array) $stock);

$productIn = (object) array_filter((array) $product);
try{
$response = $clientUpdate->request('POST', '/api/rest/products', ['json' => json_encode($productIn)]);

echo $response;
}catch (RequestException $e) {
echo GuzzleHttp\Psr7\str($e->getRequest());
if ($e->hasResponse()) {
echo GuzzleHttp\Psr7\str($e->getResponse());
}
}

}
},
'rejected' => function ($reason, $index) {
echo $reason;
},
]);

// Initiate the transfers and create a promise
$promise = $pool->promise();

// Force the pool of requests to complete.
$promise->wait();
Запрос пула работает нормально. Если я отлаживаю, я ставлю точку останова там, где делаю запрос, но после того, как получаю ту же ошибку

Код: Выделить всё

PHP Fatal error:  Uncaught exception 'GuzzleHttp\Exception\ServerException' with message 'Server error: 500' in /home/xxxxxxxxxxx/PhpstormProjects/xxxxxxxxxxx/vendor/guzzlehttp/guzzle/src/Middleware.php:68
Stack trace:
#0 /home/xxxxxxxxxxx/PhpstormProjects/xxxxxxxxxxx/vendor/guzzlehttp/promises/src/Promise.php(199): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
#1 /home/xxxxxxxxxxx/PhpstormProjects/xxxxxxxxxxx/vendor/guzzlehttp/promises/src/Promise.php(152): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array)
#2 /home/xxxxxxxxxxx/PhpstormProjects/xxxxxxxxxxx/vendor/guzzlehttp/promises/src/TaskQueue.php(60): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
#3 /home/xxxxxxxxxxx/PhpstormProjects/xxxxxxxxxxx/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(96): GuzzleHttp\Promise\TaskQueue->run()
#4 /home/xxxxxxxxxxx/PhpstormProjects/xxxxxxxxxxx/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(123): GuzzleHttp\Handler\CurlMultiHandler->tick()
#5 /home/xxxxxxxxxxx/PhpstormPr in /home/xxxxxxxxxxx/PhpstormProjects/xxxxxxxxxxx/vendor/guzzlehttp/guzzle/src/Middleware.php on line 68
Я не могу понять, в чем проблема, я пытался опубликовать с помощью почтальона этот json как продукт, и он работает.

Есть предложения???

Подробнее здесь: https://stackoverflow.com/questions/372 ... -500-error
Ответить

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

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

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

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

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