Angel Cruz

nano /var/log/laravel.log

Coding, life & stuff.

Para este post vamos a usar Twingly como ejemplo, que es un servicio que funciona para hacer ping para notificar que el contenido de nuestro blog fue actualizado, usa el protocolo XML-RPC y el formato de documentos con XML para procesar la información.

twingly

Laravel tiene un wrapper HTTP para hacer peticiones que funciona desde la versión 7 del framework.

El cliente HTTP implementa (entre otras cosas), un metodo llamado send que posee la siguiente firma:

send(string $method, string $url, array $options = [])

Entonces, para hacer el ping a twingly solo debemos hacer lo siguiente:

$xml = '
<?xml version="1.0"?>
<methodCall>
	<methodName>weblogUpdates.ping</methodName>
	<params>
		<param>
			<value>'. config('app.name') .'</value>
		</param>
		<param>
			<value>'. config('app.url') .'</value>
		</param>
	</params>
</methodCall>';

Http::withHeaders([
	'Content-Type' => 'text/xml; charset=utf-8'
])->send('POST', 'https://rpc.twingly.com/', [
	'body' => $xml,
]);

Si la petición fue correcta vamos a obtener una respuesta de este tipo:

<?xml version="1.0" ?>
<methodResponse>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>flerror</name>
                        <value>
                            <boolean>0</boolean>
                        </value>
                    </member>
                    <member>
                        <name>message</name>
                        <value>
                            <string>Thanks for the ping.</string>
                        </value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodResponse>

Los invito a leer la documentación completa de twingly.

Link to, or bookmark, here using this permalink.

You can post a comment to this article by replying to twitter.

Angel's avatar
Watagatapitusberry... !!

1 repost

Comments

  1. Angel Angel
    Laravel tiene un wrapper HTTP para hacer peticiones que funciona desde la versión 7 del framework. El cliente HTTP implementa (entre otras cosas), un metodo llamado send que posee la siguiente firma: send(string $method, string $url, array $options = []) Entonces, para hacer el ping a twingly solo debemos hacer lo siguiente: $xml = ' <?xml version="1.0"?> <methodCall> <methodName>weblogUpdates.ping</methodName> <params> <param> <value>'. config('app.name') .'</value> </param> <param> <value>'. config('app.url') .'</value> </param> </params> </methodCall>'; Http::withHeaders([ 'Content-Type' => 'text/xml; charset=utf-8' ])->send('POST', 'https://rpc.twingly.com/', [ 'body' => $xml, ]); Si la petición fue correcta vamos a obtener una respuesta de este tipo: <?xml version="1.0" ?> <methodResponse> <params> <param> <value> <struct> <member> <name>flerror</name> <value> <boolean>0</boolean> </value> </member> <member> <name>message</name> <value> <string>Thanks for the ping.</string> </value> </member> </struct> </value> </param> </params> </methodResponse> Los invito a leer la documentación completa de twingly.
  2. ángel ángel
    Postear un documento con formato XML usando el cliente HTTP de laravel angelcruz.dev/post/postear-u…