誤り訂正 IO::Socket::SSL 1.56 must be installed for https support

は、Perlプログラミング言語が複数の図書館利用できる ダウンロードからデータをインターネットプロトコル HTTP. 最も有名なのが LWP および HTTP::Tiny. 図書館 HTTP::Tiny 付属Perl、必要はありません追加インストール, そのため、多くの便利なデータのダウンロードします。

成功をダウンロード HTML ページプロトコル http

この例のコード負荷のホームページ http://example.com. この例では httpを利用すいhttps:

#!/usr/bin/perl

use strict;
use warnings;
use feature qw(say);

use HTTP::Tiny;
use Data::Dumper;

my $response = HTTP::Tiny->new()->get('http://example.com');

warn Dumper $response;

走らせる場合、このコードできます。 受信の状況 200. の分野 success価値 がtrue(このテキストの便宜のために表示、データ構造分野 content の値が変わった 代わりにhtmlコードのページの記述によるドット):

$ perl script.pl
$VAR1 = {
          'reason' => 'OK',
          'protocol' => 'HTTP/1.1',
          'content' => '...',
          'headers' => {
                         'etag' => '"3147526947+gzip+ident"',
                         'x-cache' => 'HIT',
                         'connection' => 'close',
                         'cache-control' => 'max-age=604800',
                         'content-length' => '1256',
                         'server' => 'ECS (nyb/1D2A)',
                         'expires' => 'Mon, 30 Dec 2019 12:38:04 GMT',
                         'vary' => 'Accept-Encoding',
                         'content-type' => 'text/html; charset=UTF-8',
                         'date' => 'Mon, 23 Dec 2019 12:38:04 GMT',
                         'last-modified' => 'Thu, 17 Oct 2019 07:18:26 GMT'
                       },
          'url' => 'http://example.com',
          'success' => 1,
          'status' => '200'
        };

エラー時にhttpsを使用

が変更された場合は少しこのコードに負荷データhttps、 あなたの情報を入力してください。 こちらのコードのプログラム:

#!/usr/bin/perl

use strict;
use warnings;
use feature qw(say);

use HTTP::Tiny;
use Data::Dumper;

my $response = HTTP::Tiny->new()->get('https://example.com');

warn Dumper $response;

ここでは、出力からこのプログラム:

$ perl script.pl
$VAR1 = {
          'url' => 'https://example.com',
          'reason' => 'Internal Exception',
          'status' => 599,
          'success' => '',
          'headers' => {
                         'content-type' => 'text/plain',
                         'content-length' => 57
                       },
          'content' => 'IO::Socket::SSL 1.56 must be installed for https support
'
        };

フィールドの値 status 599 (この特殊な状況で発明された図書館の HTTP::Tinyこの問題は図書館) の価値 success がfalseの場合、 content があり、エラーが発生した: IO::Socket::SSL 1.56 must be installed for https support.

を解決しよう

そうですね。 に HTTP::Tiny 仕httpsめの図書館 IO::Socket::SSL.

入れてみると、 cpanmはそのエラー:

root@faf6a4b66b08:/app# cpanm IO::Socket::SSL
--> Working on IO::Socket::SSL
Fetching http://www.cpan.org/authors/id/S/SU/SULLR/IO-Socket-SSL-2.066.tar.gz ... OK
==> Found dependencies: Net::SSLeay
--> Working on Net::SSLeay
Fetching http://www.cpan.org/authors/id/C/CH/CHRISN/Net-SSLeay-1.88.tar.gz ... OK
Configuring Net-SSLeay-1.88 ... OK
Building and testing Net-SSLeay-1.88 ... FAIL
! Installing Net::SSLeay failed. See /root/.cpanm/work/1577105006.3284/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Net::SSLeay' is not installed
! Bailing out the installation for IO-Socket-SSL-2.066.
root@faf6a4b66b08:/app#

これを見ていただきますと、ログのための図書館 IO::Socket::SSL を設置する必要 Net::SSLeayNet::SSLeay が表示されます。. ファイルに build.log で詳細をご確認ください。 このスニペットはそのファイル:

cp lib/Net/SSLeay.pod blib/lib/Net/SSLeay.pod
/usr/bin/perl /usr/share/perl/5.18/ExtUtils/xsubpp  -typemap /usr/share/perl/5.18/ExtUtils/typemap -typemap typemap  SSLeay.xs > SSLeay.xsc && mv SSLeay.xsc SSLeay.c
cc -c   -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   -DVERSION=\"1.88\" -DXS_VERSION=\"1.88\" -fPIC "-I/usr/lib/perl/5.18/CORE"   SSLeay.c
SSLeay.xs:163:25: fatal error: openssl/err.h: No such file or directory
 #include  openssl/err.h
                         ^
compilation terminated.
make: *** [SSLeay.o] Error 1

成功した溶液

HTTP::Tiny が作品のプロトコル https 必要なインストール図書館 IO::Socket::SSL. 設定 IO::Socket::SSL を設置する必要 Net::SSLeay. がインストール図書館 Net::SSLeay 置する必要があります追加のライブラリのシステム。

Ubuntuを有することが期待されているコマンド:

$ apt-get update && apt-get install -y libssl-dev

このインストールする必要があり IO::Socket::SSL:

# cpanm IO::Socket::SSL

このコマンドを成功に導の図書館 Net::SSLeay および IO::Socket::SSL. そのHTTP::Tiny ビデオの再生までを何でもこのプロトコル https.

その他の記事