Como você faz solicitações HTTP com Raku?
Como você faz solicitações HTTP com Raku? Estou procurando o equivalente a este código 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)
Respostas
Você pode querer experimentar o módulo HTTP :: Tiny recente .
use HTTP::Tiny;
my $response = HTTP::Tiny.new.get( 'https://example.com/' ); say $response<content>.decode
Depois de pesquisar um pouco, encontrei uma resposta nos 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;
Há mais informações sobre cabeçalhos e POST
solicitações no link.
Eu quero contribuir um pouco mais. Existe um módulo fantástico chamado WWW . É muito conveniente fazer 'gets' que receba json porque pode ser analisado automaticamente.
No exemplo deles:
use WWW;
my $response = jget('https://httpbin.org/get?foo=42&bar=x');
Você pode examinar os objetos usando as funcionalidades básicas de matrizes e hashes, por exemplo, para extrair os valores da minha resposta, você pode usar:
$response<object_you_want_of_json><other_nested_object>[1]<the_last_level>
Aqui, o número [1] é uma lista aninhada dentro de um hash e as propriedades são as mesmas. Bem-vindo à comunidade raku !!!