Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
617 views
in Technique[技术] by (71.8m points)

ios - For Soap NSURLConnection, Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required

I've submitted my app in AppStore, they reject if due to following reason.

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

I am using SOAP Envelope service to use it,

Here is my code

@property(retain,nonatomic)NSString *xmlString;

@property(nonatomic,retain)NSMutableData *webResponseData;


-(void)method_GetUpcomingLotteries
{

    NSString *soapMessage = [NSString stringWithFormat:@"<?xml version="1.0" encoding="UTF-8"?>
"
                             "<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">
"
                             "<env:Body>
"
                             "<ns1:GetUpcomingLotteries env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
"
                             "<EntityID xsi:type="xsd:int">2</EntityID>
"
                             "<Password xsi:type="xsd:string">Smart@Winners</Password>
"
                             "<SortBy xsi:type="xsd:int">0</SortBy>
"
                             "<limit xsi:type="xsd:int">0</limit>
"
                             "</ns1:GetUpcomingLotteries>
"
                             "</env:Body>
"
                             "</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===
 %@",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.");


}

My question :

1) Please tell me do I need to change my method or I've to change the server end to transfer my API from IPv4 to IPv6 ?

2) Code for IpV6 using SOAP method under ios9 that work replacing NSURLConnection

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

At WWDC 2015, apple announced the transition to IPV6-only network services in iOS 9. Now from June 1, 2016 apple has made mandatory that the app should support iPV6.

If developers use the standard networking APIs like NSURLSession and CFNetwork APIs provided by apple, they should not experience any problem. Otherwise you will have to move your code to the APIs that support IPV6.

If you are looking for to use some standard network library like AFNetworking. According to this site AFNetworking 3.0 support IPV6.

Apple has a documentation on how to test IPV6 support.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...