CURLOPT_POST与CURLOPT_CUSTOMREQUEST

2022-08-31 01:20:13

我正在使用Acid API上的电子邮件

在通过PHP Curl向端点发送请求时,我尝试了以下替代方法:POSThttp://sandbox.emailonacid.com/v4/GetClientList

  1. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST")
  2. curl_setopt($ch, CURLOPT_POST, 1);

第一个选项有效,但第二个选项返回 HTTP 400 错误请求。

任何人都可以解释这种行为吗?


答案 1

默认情况下,CURLOPT_POST将使用“application/x-www-form-urlencoded”标头执行常规POST请求,这通常是提交HTML表单时使用的那种。Content-Type


您正在使用的 API 具有用于或取决于您发送 JSON 或 XML 有效负载的受限标头。Acceptapplication/jsonapplication/xml

您可以使用以下命令覆盖常规 POST 标头的默认值:Content-Type

$headers = ['Content-Type: application/json'];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

答案 2

推荐