Comment puis-je envoyer une demande HTTPS en Perl sans LWP :: UserAgent ou HTTP :: Request?

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

  •  22-07-2019
  •  | 
  •  

Question

Je dois envoyer une demande HTTPS sans utiliser LWP :: UserAgent ou HTTP :: request? Quelle est une autre méthode pour le faire? Voici la demande que je dois envoyer:

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
Était-ce utile?

La solution 3

Grâce à la référence du paquet par Sinan & # 220; n & 258, j'ai pu accomplir ce dont j'avais besoin:

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;

Autres conseils

Recherchez-vous README.SSL ?

  

La prise en charge du chiffrement est obtenue via   l'utilisation de Crypt :: SSLeay ou    IO :: Socket :: SSL , qui peuvent être tous deux   trouvé de CPAN. libwww-perl   "plug-and-play" soutien pour les deux   ces modules (à partir de v5.45), le   module recommandé à utiliser est    Crypt :: SSLeay .

Recherchez une bibliothèque SSL et ouvrez vous-même le socket, puis envoyez les données.

Je recommanderais contre cela cependant. Il est bien mieux de le faire correctement via l’un des modules que vous avez mentionné en fournissant au module les paramètres corrects pour que celui-ci réponde à la demande souhaitée.

Je ne suis pas sûr qu'il soit judicieux de nous fournir votre identifiant de demande paypal et d'autres données ... Les données exactes envoyées au serveur ne sont pas vraiment pertinentes ici; Ce qui compte le plus, c'est le type d'erreur que vous obtenez lorsque vous utilisez LWP :: UserAgent. Vous avez indiqué dans une question précédente que vous obteniez des erreurs HTTP 500, ce qui donne à penser que le destinataire a un problème ou que vous envoyez des données en cours de rejet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top