我的应用程序因Ipv6网络不兼容而被拒绝两次。
这个问题已被问过好几次了。大多数解决方案建议避免使用第三方api进行http请求,并且不要硬编码ipaddress。我没有做过。
但是我的服务器必须与ipv6兼容,或者我的http请求有问题。
所以我在这个网站https://services.fingrowthbank.com/上测试了我的服务器http://ipv6-test.com/validate.php,用于Ipv6准备测试。它显示为不兼容。这可能是拒绝的原因吗?
http请求代码
let nsUrlObject: NSURL = NSURL(string: urlAndMethod)!
let nsMutableUrlRequestObj: NSMutableURLRequest = NSMutableURLRequest(URL: nsUrlObject, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData, timeoutInterval: nstime_out_intervalObj)
nsMutableUrlRequestObj.HTTPMethod = “POST"
let bodyData = httpBodyStr
nsMutableUrlRequestObj.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding)
nsMutableUrlRequestObj.setValue(httpHeaderStr, forHTTPHeaderField: "Authorization")
NSURLConnection.sendAsynchronousRequest(nsMutableUrlRequestObj, queue: NSOperationQueue.mainQueue())
{
(response, data, error) in
if response == nil
{
print(error)
alert.view.removeFromSuperview()
Imps_http_client.showAlertView("Could not connect to the server")
}else{
}
}
答案 0 :(得分:1)
您的代码没有问题。问题是你的服务器端。
根据https://services.fingrowthbank.com/,您的服务器与IPV6不兼容。因为我发现你使用旧的安全加密,即Obsolete Cipher suite。
我在图像中排列。
我测试了样本服务器。 示例: Apple。这个苹果正在使用现代密码套件
您的服务器存在问题安全攻击次数13 。这就是苹果拒绝你的应用程序的原因。使用延迟安全性更新您的应用。
解决方案:只需将服务器更新为现代密码套件。
答案 1 :(得分:0)
检查您的代码或您正在使用的任何第三方组件,并确保您没有使用IP地址而不是域名发送任何请求。具体来说,请检查Reacahbility代码。如果您使用它,请不要使用函数reachabilityWithAddress
,而是使用reachabilityWithHostName
。 reachabilityForInternetConnection
也在使用reachabilityWithAddress
- 如果您使用此功能,请进行编辑。
最后,您可以通过使用mac创建ipv6网络并使用该网络测试应用程序来验证您的应用程序的ipv6。