如何使用 Raku 发出 HTTP 请求?

How do you make HTTP requests with Raku?

如何使用 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)

搜索了一下后,我在 Cro docs 中找到了答案。

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;

在 link 中有关于 headers 和 POST 请求的更多信息。

您可能想试试最近的 HTTP::Tiny 模块。

use HTTP::Tiny;
my $response = HTTP::Tiny.new.get( 'https://example.com/' );
say $response<content>.decode

我想多贡献一点。有一个名为 WWW 的奇妙模块。 使 'gets' 接收 json 非常方便,因为它可以自动解析。

在他们的例子中:

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]是一个hash里面的嵌套列表,属性是一样的。欢迎来到 raku 社区!!!