I was writing some code to access my Flickr account, when I happened to have to access a resource over an SSL connection (https-protocol).
Much to my surprise, LWP failed to access this resource and gave me a most strange error:
The code I used was a very simpleCan't connect to api.flickr.com:443 Bad file descriptor at d:/Perl/perl/site/lib/LWP/Protocol/http.pm line + 41.
Note that LWP makes the connection if I change 'https' by 'http'. Of course the webserver then refuses to return the requested resource as it requires an SSL connection.my $ua = LWP::UserAgent->new; my $req = HTTP::Request->new( GET => 'https://api.flickr.com/services/ +rest'); my $response = $ua->request($req);
Note also that the error message refers to the LWP::Protocol::http-module, rather than the LWP::Protocol::https-module, as one should expect.
Both modules are installed and up-to-date. Net::SSL is also installed and up-to-date (version 2.86).
I am running Strawberry Perl 18.2 on a Windows 8.1 machine.
Anyone any ideas how to make this work?
Update: Adding the ssl_opts and protocols_allowed parameters solved the problem. Thanks all!
CountZero
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
My blog: Imperial DeltronicsIn reply to LWP not working with HTTPS protocol (SOLVED) by CountZero
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |