应用程序拒绝NSUrlConnection IPv6网络问题iOS
iTunes应用程序被拒绝 原因: 在iPhone上查看时,我们发现你的应用程序中有一个或多个bug 在连接到IPv6网络的Wi-Fi上运行iOS 9.3.4 具体而言,无法加载应用程序内容 我们在NAT64网络(从mac安装)中测试了它,它运行良好,但苹果审查团队在IPv6网络方面存在问题 我们使用NSURLConnection调用web服务,但没有得到响应应用程序拒绝NSUrlConnection IPv6网络问题iOS,ios,iphone,networking,nsurlconnection,ipv6,Ios,Iphone,Networking,Nsurlconnection,Ipv6,iTunes应用程序被拒绝 原因: 在iPhone上查看时,我们发现你的应用程序中有一个或多个bug 在连接到IPv6网络的Wi-Fi上运行iOS 9.3.4 具体而言,无法加载应用程序内容 我们在NAT64网络(从mac安装)中测试了它,它运行良好,但苹果审查团队在IPv6网络方面存在问题 我们使用NSURLConnection调用web服务,但没有得到响应 NSURLConnection:connectionIDFinishLoading:被调用,但在IPv6网络中获得零NSData响应,在
NSURLConnection:connectionIDFinishLoading:
被调用,但在IPv6网络中获得零NSData响应,在IPv4网络中工作正常
json解析代码
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions | NSJSONReadingAllowFragments | NSJSONReadingMutableContainers error:&error];
获取分析错误,因为nil receivedData:无法读取数据,因为它的格式不正确
在IPv4网络和IPv6连接中都可以正常工作IDFinishLoading:已调用,但为什么没有响应?更改应用程序NSURLSession。使用此委托方法获取响应 服务url=“你在这里解析你的url” 在此委托方法中,您只需复制并粘贴您的
connectionIDFinishLoading
,connectionIDReceiveResponse
,connectionIDReceiveData
,connectionIDFailWitherRor
应位于(NSURLSession*)会话任务的其他部分:
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
{
NSLog(@"### handler 1");
[self.responseData setLength:0];
completionHandler(NSURLSessionResponseAllow);
}
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data
{
}
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
didCompleteWithError:(NSError *)error
{
if(error == nil)
{
NSLog(@"Download is Succesfull");
}
else
{
NSLog(@"Error %@",[error userInfo]);
}
}
我认为这对您很有帮助。更改您的应用程序会话。使用此委托方法获取响应 服务url=“你在这里解析你的url” 在此委托方法中,您只需复制并粘贴您的
connectionIDFinishLoading
,connectionIDReceiveResponse
,connectionIDReceiveData
,connectionIDFailWitherRor
应位于(NSURLSession*)会话任务的其他部分:
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
{
NSLog(@"### handler 1");
[self.responseData setLength:0];
completionHandler(NSURLSessionResponseAllow);
}
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data
{
}
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
didCompleteWithError:(NSError *)error
{
if(error == nil)
{
NSLog(@"Download is Succesfull");
}
else
{
NSLog(@"Error %@",[error userInfo]);
}
}
我认为这对你有帮助