Domanda

Mi sto interfaccia con un gateway di pagamento e non ho fortuna con Net :: SSLeay e la sua subroutine post_https. Il gateway di pagamento mi ha emesso un certificato client che deve essere utilizzato per l'autenticazione. Net :: SSLeay perldoc ha il seguente esempio:

($page, $response, %reply_headers)
         = post_https('www.bacus.pt', 443, '/foo.cgi',           # 3b
              make_headers('Authorization' =>
                           'Basic ' . MIME::Base64::encode("$user:$pass",'')),
              make_form(OK   => '1', name => 'Sampo'),
              $mime_type6, $path_to_crt7, $path_to_key8);

La mia versione è sotto e restituisce l'errore Troppi argomenti per Net :: SSLeay :: post_https :

#!/usr/bin/perl

use strict;
use warnings;
use Net::SSLeay qw(post_https);

my %post = (
    #snip
);

my ($page, $response, %reply_headers) = post_https(
    'www.example.com',
    443,
    '/submit',
    '',
    make_form(%post),
    'text/xml',
    '/path/to/cert',
    '/path/to/key',
);

Perché si verifica questo errore?

È stato utile?

Soluzione

Nuove versioni di Net :: SSLeay non hanno il prototipo delle vecchie versioni. Leggendo la fonte della vecchia e della nuova versione, direi che il prototipo era un bug (il codice che chiama può gestire più variabili di quanto pubblicizzato).

La soluzione che raccomando è l'aggiornamento a una versione più recente di Net :: SSLeay. Se ciò non è possibile, chiamarlo come & amp; post_https può essere una soluzione rapida ma brutta.

Altri suggerimenti

La documentazione non è corretta. Nella mia copia (Net :: SSLeay 1.04) post_https è mostrato nella documentazione con l'esempio che citi, ma è dichiarato che accetta un massimo di 6 argomenti:

sub post_https ($$;***) { do_httpx2(POST => 1, @_) }

Non sono ancora sicuro di come farlo funzionare.

Modifica: prova a chiamare post_https alla vecchia maniera, come una subroutine usando & amp; post_https (...).

Hai una virgola in più dopo '/ path / to / key'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top