我想向Guzzle Http请求添加一些数据。有文件名,文件内容和带有授权密钥的标头。
$this->request = $this->client->request('POST', 'url', [
'multipart' => [
'name' => 'image_file',
'contents' => fopen('http://localhost:8000/vendor/l5-swagger/images/logo_small.png', 'r'),
'headers' =>
['Authorization' => 'Bearer uCMvsgyuYm0idmedWFVUx8DXsN8QzYQj82XDkUTw']
]]);
但是我得到了错误
可捕获的致命错误:传递给GuzzleHttp \ Psr7 \ MultipartStream :: addElement()的参数2必须为数组类型,字符串
给定的,在第70行上的vendor \ guzzlehttp \ psr7 \ src \ MultipartStream.php中调用,并在第79行的vendor \ guzzlehttp \ psr7 \ src \ MultipartStream.php中定义
在Guzzle 6中,文档是这样的:http://docs.guzzlephp.org/en/latest/request-options.html#multipart
谁知道我在哪里弄错了?
最佳答案
这是解决方案。具有访问令牌的标头应位于多部分部分的外部。
$this->request = $this->client->request('POST', 'request_url', [
'headers' => [
'Authorization' => 'Bearer access_token'
],
'multipart' => [
[
'Content-type' => 'multipart/form-data',
'name' => 'image_file',
'contents' => fopen('image_file_url', 'r')
]
]
]);