كيف أمنع ServerXMLHTTP من متابعة عمليات إعادة التوجيه تلقائيًا (HTTP 303 راجع الاستجابات الأخرى)؟
-
03-07-2019 - |
سؤال
أنا أستخدم ServerXMLHTTP لإجراء HTTP POST.الرد الذي تم إرجاعه هو إعادة توجيه (على وجه التحديد 303 انظر أخرى).يتبع ServerXMLHTTP عملية إعادة التوجيه هذه تلقائيًا ولكن هذا يتسبب في فشل المصادقة لأنه لا ينشر رأس التفويض للطلب الأصلي.
هل هناك طريقة يمكنني من خلالها منع إعادة التوجيه التلقائي (أو بدلاً من ذلك التأكد من إعادة إرسال رأس التفويض)؟
المحلول
لا يدعم ServerXMLHTTP اعتراض عمليات إعادة التوجيه (يرى مقالة قاعدة معارف Microsoft رقم 308607).لكن WinHTTP يمكن استخدامها في مكانها وهذا يفعل تحتوي على خيار "تمكين عمليات إعادة التوجيه" القابل للتكوين.
كيفية تعطيل عمليات إعادة توجيه WinHTTP في VBA:
webClient.Option(6) = False
في سياق:
Set webClient = CreateObject("WinHttp.WinHttpRequest.5.1")
webClient.Option(6) = False
webClient.Open "POST", "http://example.com", False
webClient.send ("")
لا تنتمي إلى StackOverflow