llamada curl no funciona

Iniciado por OssoH, 9 Diciembre 2020, 16:31 PM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

Hola,
estoy tratando de crear un fichero php alojado en un dominio con https para que haga una llamada a otro servidor http a traves del puerto 1234. Lo he intentado con $ajax jsonp y con curl y en todos los casos me dice que el contenido es bloqueado.
Las pruebas con POSTMAN y poniendo la url directamente en el navegador funcionando.
Pero hay algo más en el PHP que no funciona.

¿Que puedo estar haciendo mal?

Os pongo el ejemplo de curl


ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");

echo 'kaka aa';
$ch = curl_init("http://aquipongolaweballamar.net:1234");    // initialize curl handle
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       curl_setopt($ch, CURLOPT_PORT, 1234);

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
       
        // Return the result to a variable 
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
       
        curl_setopt($ch, CURLOPT_NOSIGNAL, 3);
       
        // Fail on errors?
        curl_setopt($ch, CURLOPT_FAILONERROR, 3);
       
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 3);
       
        // Timeout after X seconds
        curl_setopt($ch,CURLOPT_TIMEOUT,10);

       $data = curl_exec($ch);

       $http_status_code = @curl_getinfo($ch, CURLINFO_HTTP_CODE);

       print($data);
       echo 'status;'.$http_status_code;

#!drvy

El servidor donde alojas ese fichero, ¿permite conexiones externas hacia ese puerto?

Saludos

OssoH

#2
Te refieres a si tengo abierto el puerto 1234 en el router?

Si no lo permitiese entonces con el POSTMAN no funcionaria y tampoco funcionaria si pongo la url directamente en el navegador ¿no?




si uso JSONP me pasa lo mismo


    <script>

        $.ajax({

            type: 'GET',
            url: 'http://aqupongolaweb.net:1234',
            data: { algunaVariable: 'algunDato' },
            dataType: "jsonp",
            crossDomain: true,
            cache:false,
            success: function(data){
            // Lo que tenga que hacer cuando se reciben los datos
            alert('ok');
            },
            error:function(error){
            // Lo que tenga que hacer cuando no se reciben los datos
            alert('nook');
            }

        });

    </script>






Mod: No hacer doble post. Usar el botón "Modificar".

#!drvy

CitarInsertar Cita
Te refieres a si tengo abierto el puerto 1234 en el router?

Si no lo permitiese entonces con el POSTMAN no funcionaria y tampoco funcionaria si pongo la url directamente en el navegador ¿no?


No.

Me refiero a si el servidor donde alojas el archivo PHP con el que intentas hacer el CURL, permite conexiones hacia fuera y más específicamente, conexiones a otros puertos. Es muy común que ciertos hostings capen conexiones hacia puertos raros.

Citarsi uso JSONP me pasa lo mismo

Para ajax debes permitir CORS.
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS


¿De todos modos, que es lo que exactamente te devuelve CURL?

Saludos

OssoH

Cita de: #!drvy en  9 Diciembre 2020, 17:00 PM
Me refiero a si el servidor donde alojas el archivo PHP con el que intentas hacer el CURL, permite conexiones hacia fuera y más específicamente, conexiones a otros puertos. Es muy común que ciertos hostings capen conexiones hacia puertos raros.

Llevas razón no se permite conexiones hacia fuera.
Gracias