كيف أمنع ServerXMLHTTP من متابعة عمليات إعادة التوجيه تلقائيًا (HTTP 303 راجع الاستجابات الأخرى)؟

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

سؤال

أنا أستخدم 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 ("")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top