نت :: SSLeay post_https خطأ الترجمة: العديد من الحجج

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

  •  04-07-2019
  •  | 
  •  

سؤال

وأنا التواصل مع بوابة الدفع وعدم وجود أي حظ مع صافي :: SSLeay وروتين post_https لها. أصدرت لي بوابة الدفع شهادة عميل التي يجب أن تستخدم للمصادقة. وperldoc نت :: SSLeay لديه المثال التالي:

($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);

ونسختي الخاصة أقل وإرجاع خطأ على الكثير من الحجج لنت :: :: 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',
);

لماذا يحدث هذا الخطأ؟

هل كانت مفيدة؟

المحلول

وإصدارات جديدة من صافي :: SSLeay لا تملك النموذج الذي الإصدارات القديمة لها. قراءة مصدر من النسخة القديمة والجديدة وأنا أقول كان النموذج خلل (رمز يدعو يمكن التعامل مع أكثر من المتغيرات من المعلن عنها).

والحل أوصي هو الترقية إلى الإصدار الأحدث من صافي :: SSLeay. إذا لم يكن ذلك ممكنا، ووصفه بأنه أحب ويمكن post_https يكون حل سريع ولكن القبيح.

نصائح أخرى

وثائق غير صحيحة. في نسختي (صافي :: SSLeay 1.04) post_https هو مبين في وثائق مع المثال الذي يستشهد، ولكن أعلن لاتخاذ أقصى 6 الحجج:

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

وأنا لم متأكدا من كيفية العمل على انجاحه.

وتحرير: حاول يدعو post_https بالطريقة القديمة، كما روتين باستخدام وpost_https (...)

.

لديك فاصلة إضافية بعد '/ الطريق / / مفتاح'

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top