iphone - 使用sendSynchronousRequest时在ios中获取http响应码

标签 iphone ios

<分区>

我有一个不使用任何第三方位的工作 http GET,我是 iOS 的新手,所以最初设置起来很困难。我的代码如下所示:

-(NSString *) SendGetRequestToRest:(NSString *)urlEndString
{

NSString *userName = @"userN";
NSString *password = @"PassW";

NSString *urlBaseString = @"http://someurl.co.uk/";

NSString *urlString = [NSString stringWithFormat:@"%@%@", urlBaseString, urlEndString];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

[request setURL:[NSURL URLWithString:urlString]];

[request setHTTPMethod:@"GET"];

NSString *str1 = [NSString stringWithFormat:@"%@:%@", userName, password];
NSString *encodedString = [self stringByBase64EncodingWithString:str1];
[request addValue:[NSString stringWithFormat:@"Basic %@",encodedString] forHTTPHeaderField:@"Authorization"];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"str: %@", str);

return str;

}

我需要做的是跟踪 http GET 的状态代码何时不是一个很好的 200,我看到了 How to check status of web server in iOS?这看起来很有希望,即添加:

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLResponse *)response
{
    if ([response statusCode] == 404)
    {
    /// do some stuff
    }
}

但我看不出如何将其连接到

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

因为它不接受委托(delegate)?

最佳答案

您可以使用returningResponse 参数来获取“response”:

NSHTTPURLResponse *response = nil;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
if ([response statusCode] == 404)
{
   // Do whatever you want to do after getting response
}

关于iphone - 使用sendSynchronousRequest时在ios中获取http响应码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17830457/

相关文章:

iphone - 移动棒图、 anchor 、动画或其他东西......?

iphone - 发布屏幕更改通知后,如何控制哪个UIAccessibilityElement获得焦点?

ios - 如何自动清除文本字段

iphone - 在 Objective C block 中执行选择器

iphone - 什么是一些不错的iPhone 3D/2D OpenGL ES游戏教程?

ios - 我可以将现有的 objective-C Today View 小部件转换为 iOS 14 主屏幕小部件吗?

ios - UICollectionViewCell 远程图像在滚动时消失

ios - Sencha CMD 4 无法为 iOS 打包

ios - 选择单元格时 ImageView 消失但 UILabel 不消失

ios - 用于在多个单位之间转换值的动态数学