Como você faz solicitações HTTP com Raku?

Nov 25 2020

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

12 ScimonProctor Nov 25 2020 at 21:38

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
11 Josh Nov 25 2020 at 17:02

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 POSTsolicitações no link.

4 metagib Dec 11 2020 at 09:13

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 !!!