در کلاینت Savon که از HTTPI استفاده می‌کند، پروکسی بخشی از گزینه‌های کلاینت است. هنگام دریافت WSDL از راه دور و هنگام ارسال درخواست SOAP اعمال می‌شود.

client = Savon.client(
  wsdl: 'https://service.example/soap?wsdl',
  proxy: ENV.fetch('SOAP_PROXY_URL'),
  open_timeout: 5,
  read_timeout: 15
)

مثال، انتقال HTTPI را فرض می‌کند. نشانی پروکسی تأییدشده را از طریق محیط فراهم کنید. برای یک آزمون عمومی SOAP که واسط HTTP بدون احراز هویت را می‌پذیرد، یک نامزد از فهرست پروکسی HTTP می‌تواند آن نشانی را فراهم کند؛ تصمیم‌های احراز هویت سرویس و پروکسی را جدا نگه دارید. اگر روش احراز هویت پشتیبانی‌شده از اعتبارنامه‌های درون نشانی استفاده می‌کند، نویسه‌های رزروشده را در آن اعتبارنامه‌ها کدگذاری کنید و نشانی حاصل را از گزارش‌ها دور نگه دارید.

Savon آن‌ها را «گزینه‌های سراسری» می‌نامد، اما این گزینه‌ها به یک نمونه کلاینت محدودند. کلاینت دیگری که جای دیگری ساخته شود، پروکسی را خودکار به ارث نمی‌برد.

پیش از استفاده دوباره از قطعه‌کد، انتقال نصب‌شده را بررسی کنید. مستندات کنونی Savon این گزینه‌ها را به HTTPI نسبت می‌دهد؛ انتقال Faraday آن از طریق client.faraday رابط تنظیم خودش را دارد و این گزینه‌های مخصوص HTTPI را رد می‌کند. انتقال انتخاب‌شده را پیکربندی کنید، نه اینکه دو رابط را با هم بیامیزید.

حساب پروکسی را از اعتبارنامه‌های سرویس SOAP و مقادیر WS-Security جدا نگه دارید. کد 407 پروکسی، چالش ورود HTTP سرویس و خطای SOAP تبادل‌های متفاوتی را نشان می‌دهند. دریافت WSDL می‌تواند پیش از آنکه کلاینت حتی یک عملیات برنامه انجام دهد شکست بخورد.

مقالات مرتبط