我的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时,它会起作用,对吧? –