Я пытаюсь выяснить, как реализовать следующий REST PUT с помощью Guzzle.Я пытался использовать 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."}