2

我需要将 LWP::UserAgent 转换为 Mojo::UserAgent 以支持异步调用。问题是我找不到与下面的 LWP::UserAgent 方法匹配的确切方法,例如,如何将以下 LWP 方法转换为 Mojo 的?非常感谢任何见解!

my $ua = new LWP::UserAgent ;

$ua->protocols_allowed( [ 'http', 'https' ] );

$ua->ssl_opts( 
 SSL_version=>'TLSv12', 
 verify_hostname=>0,  
 SSL_verify_mode=>SSL_VERIFY_NONE, 
 SSL_ca_file=>'ca_file.crt',
 SSL_cert_file=>'cert_file.crt',
 SSL_key_file=>'key_file.key',
 SSL_passwd_cb=> sub { return 'psswd'; }
);

$ua->credentials( $host_port, $realm, $user, $password ) ;

$ua->timeout( $timeOut ) ;

$ua->proxy( $theProxy ) ;

$ua->request( $requestObj );
4

1 回答 1

1

通过阅读LWP::UserAgentMojo::UserAgent的文档页面,我可以看到以下内容:

  • $ua->protocols_allowed(): 此功能在Mojo::UserAgent
  • SSL_version:可以Mojo::UserAgent通过调用来设置IO::Socket::SSL::SSL_version()
  • verify_hostname:如果需要验证,可以通过调用显式调用IO::Socket::SSL::verify_hostname()
  • SSL_verify_mode:可以通过调用来设置IO::Socket::SSL::set_defaults(SSL_verify_mode => $mode)
  • SSL_ca_file:Mojo::UserAgent有一个$ua->ca()可以使用的方法。
  • SSL_cert_file:Mojo::UserAgent有一个$ua->cert()可以使用的方法
  • SSL_key_file:Mojo::UserAgent有一个$ua->key()可以使用的方法
  • SSL_passwd_cb:可以通过调用来设置IO::Socket::SSL::set_defaults(SSL_passwd_cb => $cb)
  • $ua->credentials:我认为这些可以通过构造一个Mojo::URL对象并将其传递给相关的请求方法来设置。
  • $ua->timeout(): Mojo::UserAgent有一个$ua->connect_timeout()可以使用的方法
  • $ua->proxy():Mojo::UserAgent有一个$ua->proxy()可以使用的方法。
  • $ua->request():Mojo::UserAgent有一个方法$ua->start()$ua->start_p()可以使用。
于 2020-10-27T11:14:43.203 回答