0

我的应用程序在以前的 iOS 版本上运行正常。我刚刚升级到 iOS6,现在应用程序在处理 XML 请求/响应时返回错误。

应用程序向服务器发送 XML 请求并接收 XML 响应,但现在响应为空“<>”导致 NSXMLParser 失败。

以下是应用程序发送请求的方式(这在 ios6 之前可以正常工作):

    [request setURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];    
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
//[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];




NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn)
{

    receivedData = [[NSMutableData data] retain];

}

但是响应现在是空的“<>”。

 parser error is Error Domain=NSXMLParserErrorDomain Code=9 "The operation couldn’t be completed. (NSXMLParserErrorDomain error 9.)", path to file is :

/Users/ronluna/Library/Application Support/iPhone Simulator/6.0/Applications/5BA74D89-1967-4B9E-A1C0-B076F7BB9064/Documents/Menus.xml

任何想法可能是什么问题?

4

2 回答 2

0

您好,我也遇到了同样的问题。尝试将 xml 文件的格式更改为没有 BOM 的 UTF-8 ,或者如果您在服务器端脚本上填充 xml,请尝试将字符集更改为UTF-8。希望这可以帮助。

于 2012-10-01T06:53:45.307 回答
0

确保使用以 xml 格式指定的编码创建 NSData 对象。即,如果 xml 有 utf-8 编码,你应该有: NSData* d = [xmlResponseStrings dataUsingEncoding:NSUTF8StringEncoding]; 在您的代码中,其他 NSUnicodexxxxxx 编码将不起作用。希望这有帮助。

于 2013-03-18T16:58:33.267 回答