gpt4 book ai didi

perl - 如何为 Perl 的 HTTP::DAV 实现 https 支持

转载 作者:行者123 更新时间:2023-12-02 02:39:06 33 4
gpt4 key购买 nike

我正在尝试通过 WebDav 协议(protocol)访问远程服务器,更具体地说是 Perl 的 HTTP::DAV 模块。

根据其文档,与远程目录的耦合按以下方式进行:

use HTTP::DAV;

$d = HTTP::DAV->new();
$url = "http://host.org:8080/dav/";

$d->credentials(
-user => "pcollins",
-pass => "mypass",
-url => $url,
-realm => "DAV Realm"
);

$d->open( -url => $url )
or die("Couldn't open $url: " .$d->message . "\n");

我创建了一个本地 webdav 目录,并且可以通过 http 协议(protocol) 完美地访问它。

根据 HTTP::DAV 的文档,使用 Crypt::SSLeay 模块应该也有 https 支持。

Crypt::SSLeay 的文档为我们提供了在 LWP::UserAgent 模块内部使用的以下概要,从而为我们提供了通过 >https 协议(protocol):

use Net::SSL;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new(
ssl_opts => { verify_hostname => 0 },
);

my $response = $ua->get('https://www.example.com/');
print $response->content, "\n";

我的问题是:如何组合 HTTP::DAV 和 Crypt::SSLeay 模块以便通过 WebDav 和 https 协议(protocol)访问 Web 资源?

类似于以下内容:

use HTTP::DAV; 

$d = HTTP::DAV->new();

$url = "https://host.org:8080/dav/";

#...

最佳答案

这尚未经过测试,但通过浏览文档,这应该可行:

$d->get_user_agent->ssl_opts( verify_hostname => 0 );

HTTP::DAV 的文档说:

get_user_agent

Returns the clients' working HTTP::DAV::UserAgent object.

You may want to interact with the HTTP::DAV::UserAgent object to modify request headers or provide advanced authentication procedures.

HTTP::DAV::UserAgent 未记录,但 its source code显示它是 LWP::UserAgent 的子类。 LWP::UserAgent 的文档提到了用于为用户代理对象设置 SSL 选项的 ssl_opts 方法。

关于perl - 如何为 Perl 的 HTTP::DAV 实现 https 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63903416/

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