gzzle ver 6 post method не является woking

работает в почтальоне (данные необработанного формата с использованием типа application / json) с guzzle6

url-http://vm.xxxxx.com/v1/hirejob/ { "company_name":" company_name", "last_date_apply":"06/12/2015", "rid":"89498" } 

поэтому я получаю ответ 201
но в жопе

  $client = new Client(); $data = array(); $data['company_name'] = "company_name"; $data['last_date_apply'] = "06/12/2015"; $data['rid'] = "89498"; $url='http://vm.xxxxx.com/v1/hirejob/'; $data=json_encode($data); try { $request = $client->post($url,array( 'content-type' => 'application/json' ),array()); } catch (ServerException $e) { //getting GuzzleHttp\Exception\ServerException Server error: 500 } 

я получаю ошибку на vendor/guzzlehttp/guzzle/src/Middleware.php

линия № 69

  ? new ServerException("Server error: $code", $request, $response) 

Related of "gzzle ver 6 post method не является woking"

Фактически вы не устанавливаете тело запроса, но, возможно, самым простым способом передачи данных JSON является использование выделенного запроса:

 $request = $client->post($url, [ 'json' => [ 'company_name' => 'company_name', 'last_date_apply' => '06/12/2015', 'rid' => '89498', ], ]); 

Вы должны использовать флаг json_encode () JSON_FORCE_OBJECT в качестве второго аргумента. Как это:

$data = json_encode($data, JSON_FORCE_OBJECT);

Без флага JSON_FORCE_OBJECT он создаст массив json с нотной скобкой вместо символа скобки.

Также попробуйте отправить запрос следующим образом:

 $request = $client->post($url, [ 'headers' => [ 'Content-Type' => 'application/json' ], 'body' => $data ]);