2016-08-07 22 views
6

मैं नेटवर्किंग के लिए NSURLSession का उपयोग कर रहा हूं। कनेक्शन ड्रॉप ड्रॉप के साथ चार्ल्सप्रोक्सी में परीक्षण से पता चलता है कि वास्तव में एक के बजाय तीन अनुरोध भेजे जा रहे हैं।कनेक्शन ड्रॉप पर NSURLSession अनुरोध के पुनः प्रयास प्रयासों को कैसे कॉन्फ़िगर करें?

ऐसा लगता है कि यह NSRLSession निम्न स्तर का काम है - यदि यह कनेक्शन ड्रॉप निर्धारित करता है, तो वास्तव में कोई नेटवर्क नहीं है और विफलता के साथ प्रतिनिधि/ब्लॉक को कॉल करने से पहले यह कई और अनुरोध भेजेगा।

बस मेरी धारणाओं को साबित करने के लिए, मैंने NSURLSession कॉन्फ़िगरेशन को डिफ़ॉल्ट सत्र से कॉन्फ़िगरेशन में बदल दिया है सत्र सत्र कॉन्फ़िगरेशनविथइडिएंटिफायर और यह प्रतिनिधि/ब्लॉक को कॉल करने से पहले और भी अनुरोध (4) भेजना शुरू कर दिया।

यह मेरी राय में कुछ मुद्दा नहीं है, सिर्फ गीलेर को सोचकर इसे किसी भी तरह से कॉन्फ़िगर किया जा सकता है।

+0

क्या आप वाकई एक ही अनुरोध को फिर से भेज रहे हैं और नहीं, उदाहरण के लिए, उदाहरण के लिए, प्रमाणीकरण चुनौतियों और/या रीडायरेक्ट का पालन करना? AFAIK, पृष्ठभूमि 'NSURLSession' पर केवल सत्र कार्य स्वचालित रूप से पुनः प्रयास करेंगे यदि कनेक्शन स्थापित नहीं है। – Rob

+0

यह तब नहीं हो रहा है जब कनेक्शन स्थापित नहीं होता है, लेकिन जब इसे गिराया जा रहा है, तो मेरा मतलब है कि 3xx/4xx/5xx के साथ प्रतिक्रिया नहीं है लेकिन स्पष्ट कनेक्शन ड्रॉप है। कॉन्फ़िगरेशन जो मैं बना रहा हूं वह डिफ़ॉल्ट है और पृष्ठभूमि नहीं है। – Nikita

+0

आप स्पष्ट रूप से अनुरोध को कैसे छोड़ रहे हैं? – Wain

उत्तर

1

मुझे लगता है कि आप जो देख रहे हैं वह NSRLSession काम करता है जिस तरह से कलाकृतियों हैं। यह:

  • इसके साथ ही मेजबान को IPv4 और IPv6 कनेक्शन बनाता है।
  • सफलतापूर्वक खुलने वाला पहला कनेक्शन उपयोग करता है, तुरंत दूसरे कनेक्शन को बंद करता है।
  • विफलता पर, यह देखने के लिए कि क्या यह किसी अन्य सर्वर (उदा। Apple.com) तक पहुंच सकता है यह निर्धारित करने के लिए कि कौन सा त्रुटि कोड वापस भेजना है, पहुंचने के लिए कहता है।

AFAIK, इनमें से कोई भी कॉन्फ़िगर करने योग्य नहीं है, AFAIK।

+0

मुझे केवल एक मामले में कई अनुरोध दिखाई देते हैं - यदि कनेक्शन गिराया जा रहा है (स्पष्ट रूप से)। अन्य सभी मामलों में हमेशा एक अनुरोध होता है। इसके अलावा सभी तीन अनुरोध बिल्कुल समान हैं और आईपीवी 4 पते पर जाते हैं। तो मुझे नहीं लगता कि यह मामला है। – Nikita

+0

यह बहुत अजीब है। क्या आप सुनिश्चित हैं कि सत्र में प्रतीक्षा करने वाले कतारबद्ध अनुरोधों का समूह नहीं है, जो समवर्ती अनुरोधों की अधिकतम संख्या से गेट किया गया है? – dgatwood

संबंधित मुद्दे