Wie kann ich eine HTTPS-Anforderung in Perl ohne LWP :: Useragent oder HTTP :: Anfrage senden?

StackOverflow https://stackoverflow.com/questions/1228572

  •  22-07-2019
  •  | 
  •  

Frage

Ich brauche eine HTTPS-Anforderung zu senden, ohne LWP :: Useragent mit oder HTTP :: Anfrage? Was ist eine andere Methode, dies zu tun? Dies ist die Anfrage ich senden müssen:

POST https://payflowpro.paypal.com/
Connection: close
Host: payflowpro.paypal.com
Content-Length: 181
Content-Type: text/namevalue
X-VPS-CLIENT-TIMEOUT: 30
X-VPS-REQUEST-ID: 1249403513SNOID
X-VPS-VIT-INTEGRATION-PRODUCT: Product
X-VPS-VIT-INTEGRATION-VERSION: 4.0
X-VPS-VIT-OS-NAME: linux
X-VPS-VIT-OS-VERSION: 2.6.16-gentoo-r13
X-VPS-VIT-RUNTIME-VERSION: 5.008007

EXPDATE[4]=1011&AMT[6]=100.01&ACCT[16]=4111111111111111&TENDER[1]=C&TAXAMT[4]=0.00&PARTNER[8]=******&PWD[9]=******&VENDOR[6]=******&USER[6]=******&TRXTYPE[1]=S&VERBOSITY=MEDIUM
War es hilfreich?

Lösung 3

Dank Paket Referenz von Sinan Unur ich war in der Lage zu erreichen, was ich brauchte:

my $host = 'pilot-payflowpro.paypal.com';
my $port = 443;
my $sock = IO::Socket::SSL->new("$host:$port") || die $!;

my $req = 'EXPDATE[4]=1011&AMT[6]=100.01&ACCT[16]=4111111111111111&TENDER[1]=C&TAXAMT[4]=0.00&PARTNER[8]=*****&PWD[9]=******&VENDOR[6]=*****&USER[6]=******&TRXTYPE[1]=S&VERBOSITY=MEDIUM';

print $sock "POST https://$host/ HTTPS/1.1\r\n";
print $sock "Connection: close", "\r\n";
print $sock "Host: ", $host, "\r\n";
print $sock "Content-length: ", length $req, "\r\n";
print $sock "Content-type: text/namevalue\r\n";
print $sock "X-VPS-CLIENT-TIMEOUT: 30", "\r\n";
print $sock "X-VPS-REQUEST-ID: 1249403513SNOID", "\r\n";
print $sock "X-VPS-VIT-INTEGRATION-PRODUCT: Product", "\r\n";
print $sock "X-VPS-VIT-INTEGRATION-VERSION: 4.0", "\r\n";
print $sock "X-VPS-VIT-OS-NAME: linux", "\r\n";
print $sock "X-VPS-VIT-OS-VERSION: 2.6.16-gentoo-r13", "\r\n";
print $sock "X-VPS-VIT-RUNTIME-VERSION: 5.008007", "\r\n\r\n";
print $sock $req, "\r\n\r\n";

print while <$sock>;

close $sock;

Andere Tipps

Suchen Sie README.SSL ?

  

Verschlüsselungsunterstützung erhalten wird durch   die Verwendung von Crypt :: SSLeay oder    IO :: Socket :: SSL , die beide können sein   von CPAN gefunden. Während libwww-perl hat   "Plug-and-Play" Unterstützung sowohl von   Diese Module (ab v5.45), der   empfohlene Modul zu verwenden ist    Crypt :: SSLeay .

eine SSL-Bibliothek nachschlagen und öffnen Sie die Buchse selbst, sendet dann die Daten in.

würde ich gegen diese allerdings empfehlen. Viel besser, es zu tun richtig über eines der Module, die Sie erwähnt durch das Modul die richtigen Parameter füttern, damit es die Anfrage Sie wünschen.

Ich bin nicht sicher, ob es klug ist, uns Ihre paypal Anforderungs-ID und andere Daten zu geben ... Die genauen Daten an den Server gesendet werden, ist nicht wirklich relevant hier; was zählt, ist mehr die Art der Fehler, den Sie bekommen, wenn Sie LWP :: Useragent verwenden. Sie haben angegeben, in einer früheren Frage, die Sie wurden HTTP 500 Fehler bekommen, die es vorschlägt, ist etwas falsch mit dem Empfänger, oder Sie senden die Daten, die abgelehnt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top