Запрос Guzzle 6 PUT показывает устаревший метод

#http #request #guzzle #laravel-5.3

#http #запрос #guzzle #laravel-5.3

Вопрос:

Я использую guzzle http 6 для отправки запроса put на мой сервер. В их документации говорится, что способ отправки запроса ввода с данными выглядит следующим образом

 $client->request('PUT', $url, ['body' => 'foo']);
  

но когда я попытался, я получил эту ошибку

введите описание изображения здесь

просто чтобы упомянуть, я использую guzzle http на laravel 5.3

Ответ №1:

Вашим третьим аргументом должны быть заголовки. Четвертым должно быть тело.

Ниже приведен пример из http://docs.guzzlephp.org/en/latest/psr7.html ?выделить = поместить

 $headers = ['X-Foo' => 'Bar'];
$body = 'hello!';
$request = new Request('PUT', 'http://httpbin.org/put', $headers, $body);
  

В вашем случае это должно быть:

 $client->request('PUT', $url, [], ['body' => 'foo']);
  

Комментарии:

1. он устраняет предыдущую ошибку, но теперь я столкнулся с другой проблемой. мой запрос теперь поймал исключение. вот мой код —

2. попробуйте{ $response = $client->request($method, $url, [], [‘body’ =>$data ]); $result = json_decode($response->getBody(), true); верните $resu< } catch (RequestException $e) { echoPsr7str($e->GetRequest()); if ($e-> hasResponse()) { возвращает ‘безуспешный’; } }