我的Apple AppStore應用程序因不支持IPv6網絡而遭到拒絕。Xamarin iOS(Web客戶端IPv6拒絕)
這是WebClient的服務器URL的聲明。 「ipv4」是服務器的IPv4地址。我沒有在這裏添加它以保持安全。
RemoteServerConnector.Instance.DefaultServerUrl = "http://ipv4/api.php";
然後,我有這樣的方法來檢查連接:
private class MyWebClient : WebClient {
public int timeOut { get; set; }
protected override WebRequest GetWebRequest(Uri address) {
WebRequest w = base.GetWebRequest(address);
w.Timeout = timeOut;
return w;
}
}
public bool checkInternetConnection() {
try {
using(MyWebClient client = new MyWebClient()) {
client.timeOut = ApiUrls.RemoteServerConnectorTestTimeout;
var removeString = "api.php";
var testHttp = DefaultServerUrl.EndsWith(removeString) ? DefaultServerUrl.Remove(DefaultServerUrl.Length - removeString.Length, removeString.Length) : DefaultServerUrl;
using(client.OpenRead(testHttp)) {
return true;
}
}
} catch(WebException ex) {
return ex.Status != WebExceptionStatus.ConnectFailure;
} catch(Exception ex) {
return false;
}
}
它總是拋出異常的IPv6網絡。我已經試過這個解決方案Xamarin iOS IPv6 App Store Rejection,但它不起作用。我也嘗試在變量DefaultServerUrl中添加IPv6而不是IPv4。我也試過http://ipv6/api.php和http://[ipv6]/api.php
無法找到任何解決方案這種類型的連接(WebClient)。我發現只有TCP/IP協議的其他解決方案,我不想在我的應用程序中更改它。
我還看到Xamarin博客關於IPv6,但我不知道該怎麼辦。由於權限,無法添加鏈接。
我應該更改我的代碼以使其工作?謝謝你的時間:)
IP地址不是私人信息。無論如何,你不能使用IP地址文字。 –
[爲什麼我的WebRequest在Xamarin iOS中在ipv6環境中失敗?](http://stackoverflow.com/questions/40502766/why-is-my-webrequest-in-xamarin-ios-failing-in-ipv6 -environment) –
所以,當我用主機名替換IP時,它會起作用,對吧? –