Wie stellen Sie HTTP-Anfragen mit Raku?
Wie stellen Sie HTTP-Anfragen mit Raku? Ich suche nach dem Äquivalent dieses Python-Codes:
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)
Antworten
Vielleicht möchten Sie das aktuelle HTTP :: Tiny- Modul ausprobieren .
use HTTP::Tiny;
my $response = HTTP::Tiny.new.get( 'https://example.com/' ); say $response<content>.decode
Nachdem ich mich ein bisschen umgesehen hatte, fand ich eine Antwort in den Cro-Dokumenten .
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;
Weitere Informationen zu Headern und POST
Anforderungen finden Sie im Link.
Ich möchte etwas mehr beitragen. Es gibt ein fantastisches Modul namens WWW . Es ist sehr praktisch, "get" zu erstellen, die json empfangen, da es automatisch analysiert werden kann.
In ihrem Beispiel:
use WWW;
my $response = jget('https://httpbin.org/get?foo=42&bar=x');
Sie können die Objekte mithilfe der grundlegenden Funktionen von Arrays und Hashes untersuchen, um beispielsweise die Werte meiner Antwort zu extrahieren, die Sie verwenden können:
$response<object_you_want_of_json><other_nested_object>[1]<the_last_level>
Hier ist die Zahl [1] eine verschachtelte Liste innerhalb eines Hashs, und die Eigenschaften sind dieselben. Willkommen in der Raku-Community !!!