Я отправил свое приложение в AppStore, они отклоняют его по следующей причине.
Hello,
Thank you for providing this information. Upon further review, we were still unable to login to the app.
Please note that apps are reviewed on an IPv6 network. Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required.
For information about supporting IPv6 Networks, refer to Supporting iPv6 DNS64/NAT64 Networks.
For a networking overview, please see About Networking.
Best regards,
App Store Review
Я использую службу SOAP Envelope, чтобы использовать ее,
Вот мой код
@property(retain,nonatomic)NSString *xmlString;
@property(nonatomic,retain)NSMutableData *webResponseData;
-(void)method_GetUpcomingLotteries
{
NSString *soapMessage = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns1=\"urn:Lottery.Intf-ILottery\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:enc=\"http://www.w3.org/2003/05/soap-encoding\">\n"
"<env:Body>\n"
"<ns1:GetUpcomingLotteries env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\">\n"
"<EntityID xsi:type=\"xsd:int\">2</EntityID>\n"
"<Password xsi:type=\"xsd:string\">Smart@Winners</Password>\n"
"<SortBy xsi:type=\"xsd:int\">0</SortBy>\n"
"<limit xsi:type=\"xsd:int\">0</limit>\n"
"</ns1:GetUpcomingLotteries>\n"
"</env:Body>\n"
"</env:Envelope>"];
NSURL *sRequestURL = [NSURL URLWithString:@"http://isapi.mekashron.com/soapclient/soapclient.php?"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:sRequestURL];
NSString *sMessageLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
[request addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request addValue: @"urn:Lottery.Intf-ILottery/GetUpcomingLotteries" forHTTPHeaderField:@"SOAPAction"];
[request addValue: sMessageLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"soapMessage===\n %@",soapMessage);
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if( theConnection ) {
NSLog(@"hiii");
self.webResponseData = [NSMutableData data];
}else {
NSLog(@"Some error occurred in Connection");
}
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"Received Bytes from server: %lu", (unsigned long)[self.webResponseData length]);
NSString * strXml = [[NSString alloc] initWithBytes: [self.webResponseData mutableBytes] length:[self.webResponseData length] encoding:NSUTF8StringEncoding];
NSLog(@"---- %@" ,strXml);
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[self.webResponseData setLength:0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.webResponseData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"Some error in your Connection. Please try again.");
}
Мой вопрос:
1) Скажите, пожалуйста, мне нужно изменить свой метод или мне нужно изменить серверную часть, чтобы перевести мой API с IPv4 на IPv6?
2) Код для IpV6 с использованием метода SOAP под ios9, который работает вместо NSURLConnection
isapi.mekashron.com
дополнительно адреса IPv6. Может быть, вы могли бы изучить это? - person halfer   schedule 27.06.2016:-)
- person halfer   schedule 27.06.2016