2012-10-08 25 views
5

पाने के लिए जब मैं निम्नलिखित कोड निष्पादित करें:URLRequest/URLLoader ऑटो परिवर्तित पोस्ट अनुरोध

var urlRequest:URLRequest = new URLRequest("http://somehost/with/some/path?andsomequerystring=true"); 
urlRequest.method = 'POST'; 
var urlLoader:URLLoader = new URLLoader(urlRequest); 
urlLoader.addEventListener(Event.COMPLETE, function(event:Event):void{ 
    trace('sweet'); 
}); 

इसे पाने के लिए मेरी स्पष्ट पोस्ट अनुरोध बदल जाता है क्वेरी स्ट्रिंग की उपस्थिति के कारण। अगर मैं क्वेरीस्ट्रिंग को हटाता हूं (और POST बॉडी के हिस्से के रूप में क्रमबद्ध करता हूं), तो यह सफलतापूर्वक संबंधित POST अनुरोध करता है। क्या ऐसा करने से रोकने के लिए कोई रास्ता है? मेरे सर्वर के लिए एक क्वेरीस्ट्रिंग के साथ एक POST अनुरोध किया जाना आवश्यक है।

+0

मैं इस पुस्तकालय की जाँच और कुछ नहीं देता है, तो सुझाव देंगे: https://github.com/gabriel/as3httpclient यह इस मुद्दों में से कुछ मैं प्रदान की कक्षाओं का उपयोग कर आई है अतीत हो जाता है लगता है। – shaunhusain

+2

कृपया, github.com/gabriel/as3httpclient के बारे में नोट करें। यह एक कस्टम सॉकेट लाइब्रेरी है, इस प्रकार सर्वर पर सॉकेट सुरक्षा नीति की आवश्यकता होती है, जिससे आप डेटा लाने की कोशिश करेंगे। हर कोई यह सेवा प्रदान नहीं करता है। –

उत्तर

8

आह लगता है कि मैं इस सवाल का जवाब मिल गया है, लगता है कि आप के साथ ही एक शरीर में बताने की वरना यह अभी भी उनके डॉक्स से GET अनुरोध के रूप में भेज देंगे:

नोट: यदि फ़्लैश प्लेयर और में चल संदर्भित फॉर्म में कोई बॉडी नहीं है, फ़्लैश प्लेयर स्वचालित रूप से एक GET ऑपरेशन का उपयोग करता है, भले ही विधि URLRequestMethod.POST पर सेट हो। इस कारण से, को हमेशा "डमी" निकाय शामिल करने की अनुशंसा की जाती है ताकि यह सुनिश्चित किया जा सके कि सही विधि उपयोग की गई है।

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html#url

+1

यह वही लगता है जो मैं ढूंढ रहा हूं - मैं इसे आज़मा दूंगा और आपको वापस ले जाऊंगा – badunk

+0

हाँ, यह काम किया, धन्यवाद! एक तरफ के रूप में, कम उपयोग किए गए mx.rpc. ऑपरेशन क्लास को पोस्ट बॉडी नहीं खिलाया जा सकता है और अभी भी उस तकनीकीता के कारण जीईटी के लिए डिफ़ॉल्ट है .... लंग – badunk

+0

बहुत बढ़िया खुशी यह आपके लिए ऑपरेशन के बारे में अतिरिक्त जानकारी के लिए धन्यवाद, मैं धीरे-धीरे एएस 3 से बाहर फिसल रहा हूं लेकिन बाद में उपयोग के लिए मैं अपने दिमाग में इन टिड्बिट को दफनाने की कोशिश करूंगा। – shaunhusain

1

यह इसलिए क्योंकि जिस तरह से आप अपने यूआरएल हो रही है। यदि आप POST विधि के लिए अपने चर होना चाहते हैं तो आपको URLVariables का उपयोग करने की आवश्यकता है।

var urlRequest:URLRequest = new URLRequest(YOUR_REQUEST_URL_HERE); 
var variables:URLVariables = new URLVariables(); 
variables.andsomequerystring = true; 

urlRequest.data = variables; 
urlRequest.method = 'POST'; 
var urlLoader:URLLoader = new URLLoader(urlRequest); 
urlLoader.addEventListener(Event.COMPLETE, function(event:Event):void{ 
    trace('sweet'); 
});