1

我有以下方法从网络服务器获取名为 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>
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

谢谢你的帮助!

马蒂亚斯

4

1 回答 1

0

stringWithUTF8String需要一个以 NULL 结尾的 C 字符串,但[data bytes]不是以 NULL 结尾的。采用

NSString *dataInStringFormat = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

反而。

于 2012-09-04T07:03:00.530 回答