1

这可以做到吗?我看到像这样的例子

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 类型的任何想法?

4

1 回答 1

1

您确定要在 postfield 中设置 mime 类型吗?

您可能希望像这样在 http-request-header 中设置它:

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

于 2013-02-25T19:37:16.973 回答