كيف يمكنني إرسال طلب HTTPS في بيرل دون LWP :: وكيل المستخدم أو HTTP :: طلب؟
سؤال
وأنا في حاجة الى ارسال طلب HTTPS دون استخدام LWP :: وكيل المستخدم أو HTTP :: طلب؟ ما هي طريقة أخرى للقيام بذلك؟ هذا هو طلب الإدخال في حاجة الى ارسال:
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
المحلول 3
وبفضل حزم إشارة سنان Ünür وكنت قادرا على إنجاز ما يلزم:
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;
نصائح أخرى
هل تبحث عن README.SSL ؟
<اقتباس فقرة>ويتم الحصول على الدعم من خلال التشفير استخدام القبو :: SSLeay أو IO :: :: المقبس SSL ، والتي يمكن أن يكون كل من وجدت من CPAN. بينما يبووو-بيرل لديها "التوصيل والتشغيل" دعم لكلا هذه الوحدات (اعتبارا من v5.45)، و وحدة الموصى بها لاستخدامها موجودة القبو :: SSLeay .
اقتباس فقرة>وابحث عن مكتبة SSL وفتح مقبس نفسك، ثم ترسل البيانات في.
وأنا أنصح ضد ذلك على الرغم من. أفضل بكثير للقيام بذلك بشكل صحيح عن طريق واحدة من وحدات ذكرتم عن طريق تغذية وحدة المعلمات الصحيحة لذلك سوف تفعل الطلب الذي تريد.
ولست متأكدا من انها ذكية أن تعطينا إلكترونيك paypal طلب الهوية وغيرها من البيانات ... وبيانات دقيقة يتم إرسالها إلى الملقم غير ذي حقا هنا. ما يهم أكثر هو نوع من الخطأ كنت تحصل عند استخدام LWP :: وكيل المستخدم. أشرت في السؤال السابق الذي كنت الحصول على HTTP 500 أخطاء، مما يوحي هناك شيء خاطئ مع المتلقي، أو تقوم بإرسال البيانات التي يتم رفضها.