错误401 curl PUT php

错误401 curl PUT php,php,web-services,curl,Php,Web Services,Curl,我试图使用带有curl-through-PUT的webservice,但它返回了一个错误401。可能是由内容标题引起的?如果我输入0,它将返回401。我的代码: $data = array( 'codigo' => $codigo, 'nombre' => $nombre, 'descripcion' => $descripcion, 'fecha_inicio' => $fe

我试图使用带有curl-through-PUT的webservice,但它返回了一个错误401。可能是由内容标题引起的?如果我输入0,它将返回401。我的代码:

$data = array(
            'codigo' => $codigo,
            'nombre' => $nombre,
            'descripcion' => $descripcion,
            'fecha_inicio' => $fecha_inicio,
            'fecha_fin' => $fecha_fin,
            'dmañana' => $dmaniana,
            'hmañana' => $hmaniana,
            'dtarde' => $dtarde,
            'htarde' => $htarde,
            'objetivo' => $objetivo,
            'propietario' => $propietario,
            'derechos' => $derechos,
            'lista' => $lista,
            'argumentario' => $argumentario
    );


    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url.'?'.http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: 0', "TokenSession: ".$token));
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    //curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    $output = curl_exec($ch);
    curl_close($ch);

401错误表示您无权向服务器发出请求。您试图查询的服务器是否需要身份验证?另外-当您想要使用PUT方法传递数据时,为什么要设置
Content Length:0
?是的,如果我为exmaple curl\u setopt($ch,CURLOPT\u HTTPHEADER,array('Content-Length:')。strlen(http\u build\u query($data))进行PUT,我需要通过在其他Web服务中生成的头传递令牌,“TokenSession:”.$token));它返回给我相同的错误401问题很可能是您没有正确地进行身份验证…正如错误告诉您的那样。