在php curl中设置mime类型的multipart标头而不传递文件

时间:2013-02-25 19:32:53

标签: php rest curl

可以这样做吗?我看到像

这样的例子
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  'variable' => '@path/to/file;type=application/json'
));

但是如果我传递一个字符串作为变量值,我就无法设置这个mime类型。我与之接口的API明确要求将此mime类型设置为application / json,但我似乎无法使用curl库设置它,除非我使用文件。例如:

curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  'variable' => 'json_string;type=application/json'
));

只输出一个字符串,其中type = application / json附加到结尾(这很有意义),类似

curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  'variable' => sprintf('@%s;type=application/json', $json_string)
));

无法将任何内容传递给服务器,表面上是因为找不到文件(?)。

有关如何在不写出临时文件或编写自己的帖子请求的情况下显式设置此mime类型的任何想法?

1 个答案:

答案 0 :(得分:1)

你是否真的想要在后场设置mime-type?

您可能希望在http-request-header中设置它,如下所示:

CURLOPT_HTTPHEADER => array('Content-Type:application / json'),