使用php guzzle将PUT与流和参数一起使用

时间:2019-06-11 19:10:35

标签: php rest stream guzzle

我试图弄清楚如何使用Guzzle实现以下REST PUT。我已经尝试过使用multipart和json,但是我不确定使用流XML文件获取参数的语法应该是什么。

有人可以帮助我将其翻译为正确的查询吗?下面是到目前为止我尝试过的操作,但是由于指出必须包含ProjectXML,因此返回了错误。

$newUri = sprintf('%s/projects/%s/storage', $api_base, $testPid);
$newResp = $client->put($newUri,
    [
        'headers'         => [
            'Authorization' => sprintf("HubApi %s", $api_key),
        ],
        'multipart' => [
            [
                'name'     => 'ProjectXml',
                'contents' => file_get_contents("xml/$testPid.xml")
            ],
            [
                'name' => 'ProjectId',
                'contents' => $testPid
            ],
            [
                'name' => 'HubUserId',
                'contents' => "xxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxx"
            ],
            [
                'name' => 'ProductId',
                'contents' => "$(package:ourcompany/ourproducttype)/products/ProductABC123"
            ],
            [
                'name' => 'ThemeUrl',
                'contents' => "$(package:ourcompany/ourproducttype)/themes/themename-white-Classic"
            ],

        ]
    ]
);

响应:

`400 Bad Request - Validation Error` response:
{"code":"RequestValidationError","message":"'Project Xml' should not be empty."}

0 个答案:

没有答案