gpt4 book ai didi

perl - 如何在 perl 中通过文件套接字使用 http web 服务器?

转载 作者:行者123 更新时间:2023-12-02 03:54:31 25 4
gpt4 key购买 nike

可以使用 Linux 命令使用文件套接字中的 Web 服务器:

# /bin/echo -e "GET /containers/json?all=1 HTTP/1.0\r\n" | nc -U /var/run/docker.sock ; echo ''
HTTP/1.0 200 OK
Content-Type: application/json
Date: Sun, 03 Jan 2016 23:31:54 GMT
Content-Length: 2

[]
#

如何使用 Perl 模块做同样的事情?我更愿意对 HTTP::Tiny 做同样的事情,但我不知道如何将它与文件套接字一起使用。

现在我只使用 perl system() 但我想使用 HTTP::Tiny 来使代码更简单。

最佳答案

我找不到让 HTTP::Tiny 使用 UNIX 套接字的方法,但我确实找到了让 LWP 工作的方法:

use strict;
use warnings;
use LWP::UserAgent;
use LWP::Protocol::http::SocketUnixAlt;

my $socket = "/var/run/docker.sock";
my $geturi = "/containers/json?all=1"; #GET

LWP::Protocol::implementor( http => 'LWP::Protocol::http::SocketUnixAlt' );

my $ua = LWP::UserAgent->new();
my $res = $ua->get("http:/var/run/docker.sock/"."$geturi");
print $res->content;

还有a couple of docker modules in CPAN如果您认为手动执行 HTTP 请求太麻烦并且想要另一个抽象层。

关于perl - 如何在 perl 中通过文件套接字使用 http web 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34582918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com