代码之家  ›  专栏  ›  技术社区  ›  Hem

CURL POST请求出现问题,获取CURL_setopt()参数警告

  •  1
  • Hem  · 技术社区  · 7 年前

    尝试使用CURL发送带有XML正文的post请求,但不断出现以下错误:,

    Warning: curl_setopt() expects parameter 2 to be long, string given
    

    我使用下面的卷曲要求,

    $ch = curl_init(POST_URL);
    
    curl_setopt($ch, CURLOPT_MUTE, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
    curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    $output = curl_exec($ch);
    curl_close($ch);
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   t.m.adam    7 年前

    我认为警告是指 CURLOPT_MUTE 选项根据 docs ,则, 卷发静音 在cURL 7.15.5中删除:

    CURLOPT_MUTE TRUE表示对cURL函数完全沉默。
    在cURL 7.15.5中删除(可以改用CURLOPT_RETURNTRANSFER)

    运行代码(PHP 5.5.35,报告所有错误)时,我收到一条通知:

    Notice:  Use of undefined constant CURLOPT_MUTE - assumed 'CURLOPT_MUTE' 
    

    然后是一个警告:

    Warning: curl_setopt() expects parameter 2 to be long, string given
    

    看来PHP解释了 卷发静音 作为字符串,因此发出警告。