[英]Translating cURL command to PHP
我正在尝试将以下cURL命令转换为PHP。
curl -k https://api.box.com/2.0/files/content -H "Authorization: Bearer 8tuuIMsrf3ShyODVdw" -F filename=@txt.txt -F folder_id=0
这是我的尝试:
$url = 'https://api.box.com/2.0/folders/content';
$params['filename'] = '@txt.txt';
$params['folder_id'] = '0';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer ".$this->access_token, "Content-Type: multipart/form"));
$data = curl_exec($ch);
curl_close($ch);
但是,它不起作用。 谁能帮助我理解我为什么做错了什么以及我可以做什么来修改我的代码? 谢谢!!
尝试从CURLOPT_HTTPHEADER
选项中删除标题"Content-Type: multipart/form"
,因为cURL将根据您的帖子数据为您解决此问题。
由于您正在上传文件,因此content-type将自动设置为multipart/form-data
,而实际上是正确的内容类型,而不是multipart/form
。
curl -k
表示不安全。 添加以下行:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
从德语手册翻译而来(请注意,英文版缺少此信息):
如果已禁用CURLOPT_SSL_VERIFYPEER,则也必须禁用选项CURLOPT_SSL_VERIFYHOST。
您的其余代码应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.