dongzhuxun5136 2015-06-24 22:47
浏览 305
已采纳

如何使用Guzzle6发出此POST请求

My working Guzzle5 code looks roughly as follows:

$guzzle = new \GuzzleHttp\Client();
$request = $guzzle->createRequest('POST', $url);
$request->setHeader('Authorization', 'Bearer ' . $token);
$postBody = $request->getBody();
$postBody->setField('name', 'content');//several times
if (check for file) {
    $postBody->addFile(new \GuzzleHttp\Post\PostFile('name', fopen(...));
}
$response = $guzzle->send($request);

What with setting a header and maybe adding a file, I’m not sure how to do this with Guzzle6.

  • 写回答

2条回答 默认 最新

  • duancan1900 2015-06-25 17:34
    关注

    Here an example from the official documentation how can you set headers and adding file into your POST request with Guzzle 6:

    $client = new \GuzzleHttp\Client();
    $client->post('/post', [
        'multipart' => [
            [
                'name'     => 'foo',
                'contents' => 'data',
                'headers'  => ['X-Baz' => 'bar']
            ],
            [
                'name'     => 'baz',
                'contents' => fopen('/path/to/file', 'r')
            ],
            [
                'name'     => 'qux',
                'contents' => fopen('/path/to/file', 'r'),
                'filename' => 'custom_filename.txt'
            ],
        ]
    ]);
    

    The multipart option sets the body of the request to a multipart/form-data form, if you don't need to work with files you can just use form_params instead of multipart option.

    Any headers you can easy set with help headers option.

    Additional info you can find here Guzzle Upgrade Guide (5.0 to 6.0)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?