Php CURLOPT_POST vs CURLOPT_CUSTOMREQUEST

Php CURLOPT_POST vs CURLOPT_CUSTOMREQUEST,php,curl,Php,Curl,我在用电脑 向端点发送POST请求时http://sandbox.emailonacid.com/v4/GetClientList通过PHP Curl,我尝试了以下替代方案: curl\u setopt($ch,CURLOPT\u CUSTOMREQUEST,“POST”) curl_setopt($ch,CURLOPT_POST,1) 第一个选项有效,但第二个选项返回HTTP 400错误请求 有人能解释这种行为吗?默认情况下,将使用“application/x-www-form-urlenco

我在用电脑

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

  • curl\u setopt($ch,CURLOPT\u CUSTOMREQUEST,“POST”)
  • curl_setopt($ch,CURLOPT_POST,1)
  • 第一个选项有效,但第二个选项返回HTTP 400错误请求

    有人能解释这种行为吗?

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


    您正在使用的API限制了
    application/json
    application/xml
    Accept
    头,具体取决于您发送的是json还是xml负载

    您可以使用以下命令覆盖常规帖子标题的默认
    内容类型

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

    同时打开CURLOPT_VERBOSE并比较发送的请求,您可能需要找出原因。请注意,对于大多数正常的POST请求,您也会发送一个请求主体,您在这里没有提到……我也想知道。