使用JSON和XML文件将问题从cURL转换为Guzzle 6

问题描述 投票:0回答:1

很难将cURL转换为Guzzle6。我想通过JSON发送名称和引用UUID以及处理到REST端点的XML文件的内容。

卷曲

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')等。

php rest curl guzzle guzzle6
1个回答
1
投票

这是你的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"}'

© www.soinside.com 2019 - 2024. All rights reserved.