Postear un documento con formato XML usando el cliente HTTP de laravel

May 21, 2021

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:

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

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

1$xml = '
2<?xml version="1.0"?>
3<methodCall>
4 <methodName>weblogUpdates.ping</methodName>
5 <params>
6 <param>
7 <value>'. config('app.name') .'</value>
8 </param>
9 <param>
10 <value>'. config('app.url') .'</value>
11 </param>
12 </params>
13</methodCall>';
14
15Http::withHeaders([
16 'Content-Type' => 'text/xml; charset=utf-8'
17])->send('POST', 'https://rpc.twingly.com/', [
18 'body' => $xml,
19]);

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

1<?xml version="1.0" ?>
2<methodResponse>
3 <params>
4 <param>
5 <value>
6 <struct>
7 <member>
8 <name>flerror</name>
9 <value>
10 <boolean>0</boolean>
11 </value>
12 </member>
13 <member>
14 <name>message</name>
15 <value>
16 <string>Thanks for the ping.</string>
17 </value>
18 </member>
19 </struct>
20 </value>
21 </param>
22 </params>
23</methodResponse>

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

Suscribete al Newsletter

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy.

Te puede interesar

Tamaños máximos de almacenamiento de TEXT, TINYTEXT, MEDIUM/LONG TEXT
Sep 21, 2019
Leer más...

Sponsors