CURLOPT_POST与CURLOPT_CUSTOMREQUEST

Bha*_*tri 8 php curl

我正在使用Email on Acid API.

在通过PHP Curl POST向端点发送请求时http://sandbox.emailonacid.com/v4/GetClientList,我尝试了以下备选方案:

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

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

谁能解释一下这种行为?

pap*_*lip 7

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


你就吃下的API限制了Accept标头application/jsonapplication/xml取决于你是否发送一个JSON或XML有效载荷。

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

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