如何在perl中通过文件套接字使用http web服务器?
发布时间:2020-12-16 06:16:04 所属栏目:大数据 来源:网络整理
导读:使用 linux命令可以使用文件套接字中的Web服务器: # /bin/echo -e "GET /containers/json?all=1 HTTP/1.0rn" | nc -U /var/run/docker.sock ; echo ''HTTP/1.0 200 OKContent-Type: application/jsonDate: Sun,03 Jan 2016 23:31:54 GMTContent-Length: 2
使用
linux命令可以使用文件套接字中的Web服务器:
# /bin/echo -e "GET /containers/json?all=1 HTTP/1.0rn" | 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; 如果您认为手动执行HTTP请求太麻烦并且想要另一个抽象层,那么还有a couple of docker modules in CPAN. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |