1

它总是错误地说出两条消息之一。 {"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"}

这就是我所拥有的:

    $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 数据类型。

有人帮我弄清楚为什么它不起作用?

4

1 回答 1

0

弄清楚了。摆脱json并添加body

'body' => '{"specList":[{"name":"test9"}]}'
于 2016-07-22T16:01:17.757 回答