我正在向某个服务器发送XML请求,并使用NSURLConnection从中获取一些响应数据:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSMutableString *receivedString = [[NSMutableString alloc] initWithData:_receivedData encoding:NSUTF8StringEncoding];
NSLog(@"Size of DATA: %d",[_receivedData length]);
NSLog(@"Body: %@", receivedString);
}
当我的数据长度大约为4000时 - 我通常可以在输出中看到接收到的数据。但是当数据长度变大(6000,10000等)时,Output显示我的receivedString变为空!
如果长度变得更大,我怎样才能将数据保存到字符串中?谢谢。
答案 0 :(得分:2)
您确定您的数据是使用NSUTF8StringEncoding
编码的吗?仔细检查返回给您的数据。如果数据未通过编码正确表示,initWithData:encoding:
将返回nil
。
测试这个的一个简单方法是使用相同的数据对象,并创建一个包含相同数据的增量部分的字符串,直到它失败,然后查看导致它失败的字节。
我敢打赌一块南方炸鲶鱼你在这个数据中有一个不正确(或不匹配)的编码字节。