使用标头application-json在curl请求中发送文件

时间:2013-04-12 03:40:14

标签: json curl

我正在尝试在curl请求中以json格式发送数据。所以我的身体就像这样

$body = json_encode($array);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($body),
'Content-Md5: ' . base64_encode(md5($body, true))
));

我可以这样设置内容标题--header“Content-Type:application / json”但是当我的内容正文将要发送文件时,内容类型标题应用程序/ json会起作用吗? 如果我的正文中有文件,我是否需要更改内容类型标题?

1 个答案:

答案 0 :(得分:0)

不,是的,如果您正在讨论模拟浏览器“选择”文件并将其“上传”到服务器,则标题将更改为

Content-Type: multipart/form-data;

另一方面,如果你在谈论在命令行上使用文本文件代替长字符串,那么没有。 阅读send/post xml file using curl command line

的答案中的注释