2016-06-28 15 views
9

मैंने प्रतिक्रियाशील देशी में लिखा एक ऐप (आईओएस के लिए) विकसित किया है जो आईपीवी 4 नेटवर्क में अच्छा काम कर रहा है। हालांकि, हाल ही में ऐप्पल ने एक संदेश भेजा है जिसमें कहा गया है कि आईपीवी 6 नेटवर्क में परीक्षण किए जाने पर मेरा ऐप काम नहीं करता था। उन्होंने मुझे बताया कि मुझे इसे आईपीवी 6-केवल नेटवर्क के साथ संगत बनाना था।एपीआई को .fetch फ़ंक्शन का उपयोग करके प्रतिक्रिया-मूल में आईपीवी 6 संगत कैसे कॉल करें?

सवाल यह है कि, मैं अपने मौजूदा एपीआई कॉल को आईपीवी 6 नेटवर्क के साथ संगत कैसे बना सकता हूं?

मेरा एपीआई https प्रोटोकॉल का उपयोग करता है और इसे डोमेन नाम से कहा जाता है, कच्चे आईपी नहीं।

एक नमूना प्राप्त करना फोन है कि मैं का उपयोग करें:

fetch(query,{ 
     method: 'post', 
     headers: Utils.fetchHeaders('post') 
     }) 
     .then(Utils.checkStatus) 
     .then(Utils.parseJSON) 
     .then(json => this._handleResponse(json)) 
     .catch(error => { 

     this.setState({ 
      votingError: 'Sorry, there was an error!', 
      loading: false 
     }); 

     }); 

और एपीआई अंत बिंदु निम्न स्वरूप में है:

https://www.myapidomain.com

किसी भी मदद की सराहना की।

उत्तर

6

लाने एपीआई आंतरिक NSURLSession जो पहले से ही आईपीवी 6 का समर्थन करता है का उपयोग करता है:

अधिकांश एप्लिकेशन क्योंकि आईपीवी 6 को पहले से ही NSURLSession और CFNetwork एपीआई द्वारा समर्थित है किसी भी परिवर्तन की जरूरत नहीं होगी।

स्रोत: https://developer.apple.com/news/?id=05042016a

जब से तुम आईपीवी 4 उपयोग नहीं कर रहे तुम जाना अच्छा होना चाहिए लाने API से संबोधित करते हैं।

तो मुझे संदेह है कि कुछ और (शायद कुछ तृतीय पक्ष कोड?) इस के साथ सहयोग नहीं कर रहा है। क्या ऐप्पल आपको काम नहीं कर रहा था के बारे में अधिक जानकारी प्रदान करता था?

मेरा सुझाव है कि आप अपनी तरफ से परीक्षण करने के लिए this tutorial का पालन करें और पता लगाएं कि क्या गलत है।

+1

ऐसा लगता है कि मेरा एंडपॉइंट जो डिजिटल सागर बूंद है, आईपीवी 6 नेटवर्क से कनेक्शन स्वीकार नहीं करता है। हालांकि मेरा डोमेन आईपीवी 6 आईपी के साथ असाइन किया गया है। बूंद के साथ एक नेटवर्किंग मुद्दा प्रतीत होता है। मैं इस मुद्दे को हल करने के लिए डिजिटल महासागर से बात कर रहा हूं। – meteorite

+0

ठीक है मुझे लगता है कि मैंने इसे अपने सर्वर पर आईपीवी 6 समर्थन सक्षम करके तय किया है, हालांकि मुझे समझ में नहीं आता कि मुझे ऐसा संशोधन क्यों करना है। मैं आईपीवी 6 सर्वर से केवल आईपीवी 6 सर्वर से कनेक्ट क्यों नहीं कर सकता? कोई उपाय? – meteorite

+0

मुझे यह भी संदेह है कि fetch API आंतरिक रूप से NSURLSession का उपयोग करता है। क्योंकि यह डिफ़ॉल्ट रूप से क्यों काम नहीं करना चाहिए? ऐप्पल पक्ष पर मेरे ऐप की समीक्षा करने वाले लड़के ने कहा कि ऐप काम कर रहा था जब उसने आईपीवी 4 नेटवर्क पर स्विच किया लेकिन आईपीवी 6-केवल नेटवर्क में काम नहीं किया। शायद उनका नेटवर्क IPV4 ips को IPV6 में अनुवाद नहीं करता है या वास्तव में NSRLSession – meteorite

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