---
title: "Postear un documento con formato XML usando el cliente HTTP de laravel"
excerpt: "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."
date: "2021-05-21T15:59:21.000Z"
category: "Laravel"
seo_title: "Enviar XML con el cliente HTTP de Laravel: ping a Twingly"
seo_description: "Usa el método send() del cliente HTTP de Laravel para hacer pings XML-RPC a Twingly y notificar actualizaciones de tu blog. Código completo con la estructura de la petición y respuesta esperada."
author:
  name: "angel cruz"
  picture: "https://angelcruzdevcdn.nyc3.cdn.digitaloceanspaces.com/images/me/angel-cruz.png"
ogImage:
  url: "/images/open-graph/laravel-opengraph-image.png"
---

![twingly](https://pbs.twimg.com/profile_images/665140754185125888/H2uRZcej_400x400.png)

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 método llamado `send` que posee la siguiente firma:

```php
send(string $method, string $url, array $options = [])
```

Entonces, para hacer el ping a twingly solo debemos hacer lo siguiente:

```php
$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
<?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](https://developer.twingly.com/resources/rpc-ping/).

---

## Sitemap

Índice completo del sitio: [/sitemap.md](https://angelcruz.dev/sitemap.md)

Canónico HTML: [https://angelcruz.dev/post/postear-un-documento-con-formato-xml-usando-el-cliente-http-de-laravel](https://angelcruz.dev/post/postear-un-documento-con-formato-xml-usando-el-cliente-http-de-laravel)
