Какой эквивалентный код для stringWithContentsOfURL использует NSURLRequest? - PullRequest
0 голосов
/ 26 октября 2010
NSURL *url = [NSURL URLWithString:escapedUrlString];
NSString *responseString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 

Но я читал в Интернете, что мне, вероятно, следует использовать NSURLRequest, если я хочу добавить тайм-аут.Первый код работает нормально, но второй код всегда возвращает @ "" (не ноль, просто "").У кого-нибудь есть предложения?

Я также читал, что NSURLConnection позаботится о любом виде веб-сжатия, который может быть сделан, тогда как NSURLRequest не справится с этим, поэтому я подумал, что лучше просто перейти к более округлому решению.http://lists.apple.com/archives/cocoa-dev/2009/Oct/msg01921.html

    NSString *escapedUrlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString *responseString;
    NSURLResponse *response;
    NSError *error;

    NSURLRequest *request = [[NSMutableURLRequest alloc] 
                             initWithURL:[NSURL URLWithString:escapedUrlString]
                             cachePolicy:NSURLRequestUseProtocolCachePolicy
                             timeoutInterval:5]; // 5 second timeout?

    NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    if(responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]){
        NSLog(@"Recieved String Result: %@", responseString);
    } else {
        NSLog(@"Response String is null!");
    }

1 Ответ

0 голосов
/ 26 октября 2010

Спасибо за хорошие предложения.Код волшебным образом сработал сегодня утром, поэтому я предполагаю, что мой веб-сервер вышел из строя или что-то прошлым вечером.

...