我正在尝试从服务器中提取一些数据(我没有自己的服务器)但是它会返回一些带有http 500错误代码的所需数据,但是如果服务器返回http代码500,NSString stringWithContentsOfURL将返回nil。
即使服务器返回500,我也想检索数据。
答案 0 :(得分:3)
NSURLConnection(作为URL Loading System的一部分)将为您提供对请求和响应解释的较低级别控制权;你将不得不实现一些回调方法来处理对请求的细粒度控制(你可以选择同步调用它来模仿stringWithContentsOfURL:
,但它会给你你想要的。
[NSString stringWithContentsOfURL:]
非常方便,但在你的情况下,你想要绕过cocoa解释HTTP响应代码的方式,这样就需要更多的工作。
答案 1 :(得分:1)
您可以仔细使用此代码(绝不使用GUI线程):
NSURLRequest * request = ...
NSError * error = nil;
NSURLResponse * response = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSInteger httpCode = [(NSHTTPURLResponse *)response statusCode];