2009-06-14 2 views
2

Я пытаюсь вытащить некоторые данные с сервера (я не владею сервером), однако он возвращает некоторые необходимые данные с кодом ошибки http 500, однако NSString stringWithContentsOfURL возвращает nil, если сервер возвращает код HTTP 500.stringWithContentsOfURL и HTTP 500 коды ошибок

Я хотел бы получить данные, даже если сервер возвращает 500.

ответ

3

NSURLConnection (как часть URL Loading System) даст вам контроль более низкого уровня по просьбе и интерпретации ответ; вам придется реализовать несколько методов обратного вызова для обработки мелкозернистого контроля запроса (и вы можете выбрать, чтобы вызвать его синхронно, чтобы имитировать stringWithContentsOfURL:, но это даст вам то, что вы хотите.

[NSString stringWithContentsOfURL:] это большое удобство , но в вашем случае, если вы хотите, чтобы обойти способ какао интерпретирует коды ответа HTTP, так что требует smidge больше работы

1

вы можете тщательно использовать этот код (никогда из GUI потока):.

NSURLRequest * request = ... 

NSError * error = nil; 
NSURLResponse * response = nil; 

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

NSInteger httpCode = [(NSHTTPURLResponse *)response statusCode]; 
Смежные вопросы