Frage Parser Fehler Fehler Domain = NSXMLParserErrorDomain Code = 4 "Der Vorgang konnte nicht abgeschlossen werden."


Ich rufe einen Webservice wie folgt an:

-(void)verifyEmailAndPasswordWebservices
{    
 NSString  *MD5Password = [ self MD5];
 NSLog(@"text field password %@",txt_Password.text);
 NSLog(@"converted password %@",MD5Password);    

NSString *soapMsg =[NSString stringWithFormat:
                    @"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                    "<SOAP-ENV:Envelope SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:tns=\"http://php:8393/includes/webservice\">"
                    "<SOAP-ENV:Body>"
                    "<ns1:LoginUserRequest xmlns:ns1=\"http://schemas.xmlsoap.org/soap/envelope/\">"                        
                    "<email xsi:type=\"xsd:string\">%@</email>"
                    "<pass xsi:type=\"xsd:string\">%@</pass>"                   
                    "</ns1:LoginUserRequest>"
                    "</SOAP-ENV:Body>"
                    "</SOAP-ENV:Envelope>",txt_EmailOrMobile.text,MD5Password];



//---print it to the Debugger Console for verification---
NSLog(@"soapMsg..........%@",soapMsg);

NSURL *url = [NSURL URLWithString:@"http://10.0.0.115:8393/includes/webservice/login1.php"];
req = [NSMutableURLRequest requestWithURL:url];

//---set the headers---

NSString *msgLength = [NSString stringWithFormat:@"%d",[soapMsg length]];
[req addValue:@"application/soap+xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[req addValue:@"http://10.0.0.115/includes/webservice/login1.php/LoginUser" forHTTPHeaderField:@"SoapAction"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];

//---set the HTTP method and body---

[req setHTTPMethod:@"POST"];
[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];

// [activityIndicator startAnimating];

conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
if (conn)
{
    webData = [[NSMutableData data] retain];
}   
}

Wenn ich die Antwort bekomme, gebe ich folgenden Fehler:

ERLEDIGT. Empfangene Bytes: 422 zeigt das XML (null) Parser Fehler Fehler Domain = NSXMLParserErrorDomain Code = 4 "Der Vorgang konnte nicht abgeschlossen werden. (NSXMLParserErrorDomain Fehler 4.)"

Ich habe ziemlich viel im Internet gesucht. Aber nichts finden. Irgendwelche Hilfe dazu bitte.


5
2017-09-05 07:11


Ursprung


Antworten:


NSXMLParserErrorDomain error 4 bedeutet, dass der XML-Parser ein leeres Dokument erhalten hat. Das deutet darauf hin, dass die Eingabe entweder Null war oder Sie es geändert haben, bevor es dem Parser übergeben wurde.

Ich habe mir deinen Code genauer angesehen. Das Problem ist nicht, dass Sie keine Antwort bekommen. Es ist nur so, dass du nicht darauf wartest. Die von Ihnen gesendete Anfrage ist asynchron, aber Sie versuchen, Ihre Anfrage zu beantworten webData sofort variabel (d. h. synchron).


8
2017-09-05 07:19



Ein anderes mögliches Reson könnte sein, dass es kein Root-Tag gibt. Beispiel: Ein XML-Daten wie folgt --->


                              2011-12-22     

<days_remaining>
            0
</days_remaining>

1
2018-01-03 07:31



Probieren Sie diesen Code für Ihre Codierungsmethode aus

NSString *theXML = [[NSString alloc] initWithBytes: [_responseData mutableBytes] length:[_responseData length] encoding:NSUTF8StringEncoding];

0
2018-02-23 14:03