¿Cómo se realizan solicitudes HTTP con Raku?
¿Cómo se realizan solicitudes HTTP con Raku? Estoy buscando el equivalente de este código de Python:
import requests
headers = {"User-Agent": "python"}
url = "http://example.com/"
payload = {"hello": "world"}
res = requests.get(url, headers=headers)
res = requests.post(url, headers=headers, json=payload)
Respuestas
Es posible que desee probar el módulo HTTP :: Tiny reciente .
use HTTP::Tiny;
my $response = HTTP::Tiny.new.get( 'https://example.com/' ); say $response<content>.decode
Después de buscar un poco, encontré una respuesta en los documentos de Cro .
use Cro::HTTP::Client;
my $resp = await Cro::HTTP::Client.get('https://api.github.com/'); my $body = await $resp.body; # `$body` is a hash
say $body;
Hay más información sobre encabezados y POSTsolicitudes en el enlace.
Quiero aportar un poquito más. Hay un módulo fantástico llamado WWW . Es muy conveniente hacer 'get' que reciban json porque se puede analizar automágicamente.
En su ejemplo:
use WWW;
my $response = jget('https://httpbin.org/get?foo=42&bar=x');
Puede examinar los objetos utilizando las funcionalidades básicas de matrices y hashes, por ejemplo, para extraer los valores de mi respuesta, puede utilizar:
$response<object_you_want_of_json><other_nested_object>[1]<the_last_level>
Aquí el número [1] es una lista anidada dentro de un hash y las propiedades son las mismas. ¡Bienvenido a la comunidad raku!