2016-07-22 1 views
0

Он всегда ошибочно говорит одно из двух сообщений. {"message":"Required field 'specList' is not specified"} или если добавить specList то говорит '400 Bad Request' response: {"message":"Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token"}JSON param через Guzzle 6 сообщений всегда ошибки

Это то, что у меня есть:

$client = new GuzzleHttp\Client(['base_uri' => 'https://someURL/PrismGateway/services/rest/v1/']); 
    $res = $client->request('POST', 'vms/'.$vmId.'/clone', 
     [ 
      'verify' => false, 
      'auth' => ['user', 'pass'], 
      'json' => [ 
       'specList' => '[{"name":"test9"}]' 
       //tried 'create.dto.acropolis.VMCloneDTO' => '{"specList":[{"name":"test9"}]}' 
      ] 
     ] 
    ); 

Если я использую create.dto.acropolis.VMCloneDTO он говорит {"message":"Required field 'specList' is not specified"} и если я могу изменить его до specList он дает мне ошибку десериализации из выше. Я не уверен, что я делаю неправильно, но фактический параметр в api указан как create.dto.acropolis.VMCreateDTO, и он ожидает ответ specList как тип данных json.

Кто-нибудь поможет мне разобраться, почему он не работает?

ответ

0

Выяснил это. Избавена от json и добавлена ​​body:

'body' => '{"specList":[{"name":"test9"}]}' 
Смежные вопросы