RakuでどのようにHTTPリクエストを作成しますか?

Nov 25 2020

RakuでどのようにHTTPリクエストを作成しますか?私はこの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)

回答

12 ScimonProctor Nov 25 2020 at 21:38

最近のHTTP :: Tinyモジュールを試してみることをお勧めします。

use HTTP::Tiny;
my $response = HTTP::Tiny.new.get( 'https://example.com/' ); say $response<content>.decode
11 Josh Nov 25 2020 at 17:02

少し調べてみたところ、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;

POSTリンク内のヘッダーとリクエストに関する詳細情報があります。

4 metagib Dec 11 2020 at 09:13

もう少し貢献したいです。WWWという名前の素晴らしいモジュールがあります。自動で解析できるため、jsonを受け取る「gets」を作成すると非常に便利です。

彼らの例では:

use WWW;
my $response = jget('https://httpbin.org/get?foo=42&bar=x');

配列とハッシュの基本機能を使用してオブジェクトを調べることができます。たとえば、使用できる応答の値を抽出することができます。

$response<object_you_want_of_json><other_nested_object>[1]<the_last_level>

ここで、番号[1]はハッシュ内のネストされたリストであり、プロパティは同じです。楽コミュニティへようこそ!!!