Jak wysyłać żądania HTTP z Raku?
Jak wysyłać żądania HTTP z Raku? Szukam odpowiednika tego kodu w Pythonie:
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)
Odpowiedzi
Możesz wypróbować najnowszy moduł HTTP :: Tiny .
use HTTP::Tiny;
my $response = HTTP::Tiny.new.get( 'https://example.com/' ); say $response<content>.decode
Po krótkich poszukiwaniach znalazłem odpowiedź w dokumentacji 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;
Więcej informacji na temat nagłówków i POST
żądań znajduje się w linku.
Chcę wnieść trochę więcej. Istnieje fantastyczny moduł o nazwie WWW . Tworzenie „pobrań” otrzymujących json jest bardzo wygodne, ponieważ można je analizować automagicznie.
W ich przykładzie:
use WWW;
my $response = jget('https://httpbin.org/get?foo=42&bar=x');
Możesz zbadać obiekty, korzystając z podstawowych funkcji tablic i skrótów, na przykład, aby wyodrębnić wartości mojej odpowiedzi, których możesz użyć:
$response<object_you_want_of_json><other_nested_object>[1]<the_last_level>
Tutaj liczba [1] to zagnieżdżona lista wewnątrz hasha, a właściwości są takie same. Witamy w społeczności raku !!!