Мне трудно конвертировать cURL в Guzzle6. Я хочу отправить имя и ссылку UUID через JSON И содержимое файла XML для обработки в конечную точку REST.
CURL
curl -H 'Expect:' -F
'request = {"name":"test", "reference":"870e0320-021e-4c67-9169-d4b2c7e5b9c9"}'
-F '[email protected]' http://ec2-48-88-173-9.us-east-1.compute.amazonaws.com:8180/rs/process
Жрать
$client = new Client(['debug' => true]);
$request = $client->request('POST',
'http://ec2-48-88-173-9.us-east-1.compute.amazonaws.com:8180/rs/process', [
'multipart' => [
[
'name' => 'data',
'contents' => "{'name':'test','reference':870e0320-021e-4c67-9169-d4b2c7e5b9c9}",
'headers' => ['Content-Type' => 'application/json']
],
[
'name' => 'file',
'contents' => fopen('sample.xml', 'r'),
'headers' => ['Content-Type' => 'text/xml']
],
]
]
);
$response = $request->getBody()->getContents();
Кроме того, я не уверен, какими должны быть поля «имя» ('name' => 'data') и т. д.






Это эквивалент вашей команды curl в Guzzle:
$client = new Client(['debug' => true]);
$request = $client->request('POST',
'http://ec2-48-88-173-9.us-east-1.compute.amazonaws.com:8180/rs/process', [
'multipart' => [
[
'name' => 'request',
'contents' => "{'name':'test','reference':870e0320-021e-4c67-9169-d4b2c7e5b9c9}",
],
[
'name' => 'file',
'contents' => fopen('sample.xml', 'r'),
],
]
]
);
$response = $request->getBody()->getContents();
Для file Guzzle будет указан соответствующий тип контента, как это делает curl. Название первой части request — от -F
'request = {"name":"test", "reference":"870e0320-021e-4c67-9169-d4b2c7e5b9c9"}'