2016-06-28 1 views
9

私は、IPV4ネットワークでうまく動作している反応ネイティブで書かれたアプリ(IOS用)を開発しました。しかし、最近、AppleはIPV6ネットワークでテストしたときに私のアプリが動作しなかったというメッセージを送りました。彼らは私に、IPV6専用ネットワークとの互換性を持たなければならないと言いました。.fetch関数を使用して、反応ネイティブでAPI呼び出しをIPV6互換にするにはどうすればいいですか?

質問は、私の既存のAPI呼び出しをIPV6ネットワークと互換性を持たせるにはどうすればいいですか?

私のAPIはhttpsプロトコルを使用しており、生のIPではなくドメイン名によって呼び出されます。

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 
     }); 

     }); 

とAPIエンドポイントは、次の形式である:

サンプルは、私が使用することを呼び出すフェッチがある

https://www.myapidomain.com

任意のヘルプは大歓迎します。

答えて

6

フェッチAPIは、内部的にすでにIPv6をサポートしていNSURLSessionを使用しています。

IPv6がすでにNSURLSessionとCFNetworkはAPIでサポートされているので、ほとんどのアプリケーションは変更する必要はありません。

出典:https://developer.apple.com/news/?id=05042016a

あなたは、IPv4を使用していないので、あなたが行ってもいいでなければなりませんフェッチAPIに対応しています。

だから私はこれに協力していない何か(おそらくサードパーティ製のコードですか?)と思われます。 Appleは何がうまくいかなかったのかについて詳細を教えてくれましたか?

this tutorialに従うことをお勧めします。

+1

デジタル海水滴である私のエンドポイントは、IPV6ネットワークからの接続を受け入れないようです。私のドメインにはIPV6 IPが割り当てられていますが。液滴にはネットワーキングの問題があるようです。私はこの問題を解決するためにデジタル海洋と話しています。 – meteorite

+0

私はサーバー上でIPV6サポートを有効にすることで修正したと思いますが、どうしてこのような変更を加えなければならないのか分かりません。 IPV6専用ネットワーク内からIPV4サーバに接続できないのはなぜですか?何か案が? – meteorite

+0

また、フェッチAPIが内部的にNSURLSessionを使用しているかどうかは疑問です。なぜデフォルトでは動作しないのですか? Apple側で私のアプリケーションを見た人は、ipv4ネットワークに切り替わったときにアプリが動いていたが、ipv6専用ネットワークでは機能していないと言った。おそらく彼らのネットワークはIPV6をIPV6に変換しないか、フェッチは実際にNSURLSessionを使用しません。 – meteorite

関連する問題