1

Web サーバーから parsertest.html というファイルのコンテンツを取得する次の方法があります。ただし、プログラムを実行する5回ごとに約1回、フェッチされた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;

}

スクレーパーユーザーエージェントはに設定されています"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

stringWithUTF8StringNULL で終了する C 文字列が必要[data bytes]ですが、NULL で終了しません。使用する

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

代わりは。

于 2012-09-04T07:03:00.530 に答える