我有以下方法从Web服务器获取名为parsertest.html的文件的内容。但是,每运行一次我的程序大约每5次,获取的NSString在最后包含一行管道
||||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||
这是我的代码:
-(NSString *)fetchTest
{
NSURL* url = [NSURL URLWithString:@"http://www.mywebserver.com/parsertest.html"];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setValue:scraperUserAgent forHTTPHeaderField:@"User-Agent"];
NSURLResponse* response = nil;
NSError* error = nil;
NSData* data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSString *dataInStringFormat = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"%@",dataInStringFormat);
return dataInStringFormat;
}
scraperUserAgent设置为"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:15.0) Gecko/20100101 Firefox/15.0"
这是parsertest.html的内容
<parse>HELLO</parse>
<parse>World</parse>
<parse>digit</parse>
<parse>wow</parse>
<parse>hellonewitem</parse>
<parse>lastitem</parse>
发生错误时,这是NSLog的完整输出:
<parse>HELLO</parse>
<parse>World</parse>
<parse>digit</parse>
<parse>wow</parse>
<parse>hellonewitem</parse>
<parse>lastitem</parse>
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
感谢您的帮助!
的Matthias
答案 0 :(得分:0)
stringWithUTF8String
期望以NULL结尾的C字符串,但[data bytes]
不以NULL结尾。使用
NSString *dataInStringFormat = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
代替。