Bueno, quiero hacer una HTTP_POST usar cURL para un sitio SSL. Ya he importado el certificado a mi servidor. Este es mi código:

$url  = "https://www.xxx.xxx";
$post = "";# all data that going to send

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0'); 

$exe  = curl_exec($ch);
$getInfo = curl_getinfo($ch);

if ($exe === false) {
    $output = "Error in sending";
    if (curl_error($ch)){
        $output .= "\n". curl_error($ch);
    }
} else if($getInfo['http_code'] != 777){
    $output = "No data returned. Error: " . $getInfo['http_code'];
    if (curl_error($ch)){
        $output .= "\n". curl_error($ch);
    }
}

curl_close($ch);

echo $output;

Mantener devuelto «500». Basado en w3schools, 500 significa Error Interno del Servidor. Es mi servidor tiene un problema? Cómo resolver/solucionar esto?

InformationsquelleAutor mysqllearner | 2010-03-16

3 Comentarios

  1. 6

    Algunos servidores (solicitada especialmente con SSL) devuelve 500 en los casos en que algunos de los parámetros de solicitud se establece incorrecta.

    Para evitar «error 500» (por ejemplo), asegúrese de que:

    • conjunto adecuado «Referer:» encabezado si es necesario, con

    curl_setopt(CURLOPT_REFERER, 'http://site.com/ref_page');

    • conjunto adecuado «User-Agent:» encabezado, con

    curl_setopt(CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');

  2. 1
    $url  = "https://www.xxx.xxx";
    $post = "";# all data that going to send
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT    5.0'); 
    
    $exe  = curl_exec($ch);
    $getInfo = curl_getinfo($ch);
    
    if ($exe === false) {
    $output = "Error in sending";
    if (curl_error($ch)){
        $output .= "\n". curl_error($ch);
    }
    } else if($getInfo['http_code'] != 777){
    $output = "No data returned. Error: " . $getInfo['http_code'];//as preline
    if (curl_error($ch)){
        $output .= "\n". curl_error($ch);
    }
    }
    
    curl_close($ch);
    
    echo $output;

    BTW:
    Asegúrese de que CURL moduel está instalado.

    • Lo siento. Algún error tipográfico errores. Estaba editando el código. He comprobado el código, el nombre de la variable es correcta, todavía me da «Error: 500». Alguna idea? (voy a editar mi pregunta, para evitar la confusión, gracias)
    • He probado en mi wamp,sólo funciona bien.200 se consiguió.
    • Entonces puede ser problema del servidor? ¿Qué es eso de 500 medios? Yo todavía no puede conseguir a través de, mantener retorno de 500. Argggghhh!!!!
    • probablemente CURL moduel aún no ha sido instalada en su servidor.
    • Hola SpawnCxy, el cURL módulo está instalado. Yo era capaz de enviar a la no-SSL del sitio, el uso de códigos similares. No estoy seguro si se trata de la SSL cosita
    • Traté de «h-t-tps://gmail.com» como $url,consiguió 301

  3. 0

    Tienes algo mal en tu servidor o el script se ejecuta en el servidor, el cual, tal vez, lanzar una excepción no controlada.

    Usted debe comprobar el acceso del servidor y los registros de errores.

    • A qué te refieres, yo debo de contactar a mi empresa de hosting?
    • Si usted no tiene acceso directo a la del servidor de registros, usted puede pedir que le envíen a usted, sí.

Dejar respuesta

Please enter your comment!
Please enter your name here