الرؤوس المخصصة ممكنة مع URLRequest/URLStream باستخدام طريقة GET؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

بسيط جدًا حقًا:

var req:URLRequest=new URLRequest();
req.url="http://somesite.com";
var header:URLRequestHeader=new URLRequestHeader("my-bespoke-header","1");
req.requestHeaders.push(header);
req.method=URLRequestMethod.GET;
stream.load(req);

ومع ذلك، إذا قمت بفحص حركة المرور باستخدام WireShark، فإن my-bespoke-header لا يتم إرسالها.إذا قمت بالتغيير إلى URLRequestMethod.POST وإلحاق بعض البيانات به req.data, ، ثم يتم إرسال الرأس، لكن تطبيق الاستلام يتطلب GET وليس POST.

تشير الوثائق إلى قائمة سوداء بالعناوين التي لن يتم إرسالها. my-bespoke-header ليست واحدة من هذه.ربما تجدر الإشارة إلى أن الطلب الأصلي يأتي من منفذ مختلف على نفس المجال.لم يتم الإبلاغ عن أي شيء في سجل ملف السياسة، لذلك يبدو الأمر غير مرجح، ولكن هل يمكن معالجة هذا الأمر عن طريق تحميل crossdomain.xml بالقوة allow-http-request-headers-from على الرغم من أن هذه ليست قضية عبر المجالات؟أم أنها مجرد ميزة غير موثقة في Flash Player حيث يمكنه فقط إرسال رؤوس مخصصة مع طلب POST؟

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

المحلول

مما يمكنني جمعه، يبدو أن افتراضك حول عدم وجود دعم للرؤوس المخصصة لـ HTTP GET هو في الواقع ميزة غير موثقة (أو خطأ؟) في المكتبات القياسية.

على أية حال، قد ترغب في معرفة ما إذا كان as3httpclient يناسب أغراضك ويتيح لك حل هذه المشكلة.فيما يلي مقتطف ذو صلة من أ بريد في مدونة مطور هذه المكتبة:

"لم أتمكن من تعيين رأس طلب HTTP/GET.يتيح لك Macromedia Flash Player تعيين الرأس فقط لطلبات النشر.ناقشت هذه القضايا مع تيد باتريك وأخبرني كيف يمكنني أن نحقق الموجه المطلوب وكان لطيفًا للغاية لإعطاء مدونة لي ، مما جعلني أبدأ ".

نصائح أخرى

إذا كان هذا القيد غير موثق في وقت واحد، لم يعد الأمر كذلك.يرى:

http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html#requestHeaders

"[...] نظرًا لقيود المتصفح، لا يتم دعم رؤوس طلبات HTTP المخصصة إلا لطلبات POST، وليس لطلبات GET. [...]"

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