TransWikia.com

Problema con URL en php al enviar ":" en un parametro

Stack Overflow en español Asked by Enrique Espinosa on February 12, 2021

Tengo un problema enviando un parámetro por URL mediante curl en php, necesito mandar un parametro en mi url, el problema es que ese parametro contiene el caracter de ":"

por ejemplo: http://test/api/orden?productos=AOIASD:1

El problema es que los dos puntos ":" no me están permitiendo hacer la petición, he intentado cambiarlos por "%3A" que entiendo es la forma de convertir los dos puntos a un caracter valido para la url pero no me esta funcionando. Si no paso el parametro de productos me funciona sin problemas, no entiendo como podria hacer para que mi url funcione aun que contenga los ":"

Este es el codigo que estoy usando:

$url = "http://test/api/orden?";

            $productos = $value['productos'];

            echo "<br>";
            $test = str_replace(":", "%3A", $productos);
            print_r($test);
            echo "<br>";

            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_POSTFIELDS, "&productos=".$test);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/x-www-form-urlencoded'));
            $result = curl_exec($ch);
            curl_close($ch);
            
            $array = json_decode($result, TRUE);
            print_r($array);

One Answer

No deberías tener problema al usar ":" pero preguntaba si usabas en realidad esta url para realizar la petición:

"http://test/api/orden?"

Aquí el problema es que obtendrás el error 405 si la url no permite peticiones "POST".

El mensaje "405 Method Not Allowed" indica que el cliente usa un método HTTP no permitido, ya que el servidor web está configurado de una forma que no permitirá que realices una acción para un URL en particular. Es un código de respuesta de estado HTTP que indica que el método requerido es conocido por el servidor, pero no es soportado por la fuente objetivo.

El administrador de esa página debería habilitar se pueda realizar la petición.

Por cierto deberías usar https en lugar de http para evitar el error:

Mixed Content Error: The request has been blocked because it requested an insecure HTTP resource

Answered by Jorgesys on February 12, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP