gpt4 book ai didi

iOS HTTP 请求 - 获取错误响应消息

转载 作者:行者123 更新时间:2023-11-29 03:54:07 24 4
gpt4 key购买 nike

这是我对 REST api 执行 GET 请求的代码。

如果出现错误,我不确定如何取回消息:

 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSURL *URL = [NSURL URLWithString:urlString];
[request setURL:URL];
[request setHTTPMethod:@"GET"];

NSError *err = nil;
NSHTTPURLResponse *res = nil;
NSData *retData = [NSURLConnection sendSynchronousRequest:request returningResponse:&res error:&err];
if (err) // This part is never called.
{
NSLog(@"Error: %@", err);
}
else
{
if (res.statusCode != 200)
{
// show the user the status message
NSLog(@"Error: %@", res); // This part is called

}
else
{

}
}

如果不成功,我想收到错误消息。但 if (err) block 永远不会被调用。尽管状态代码为 400,但 err 仍然为 null。

如果成功,我将收到一个 json 响应。

在上面的代码中,我得到了 400 的 statusCode

最佳答案

不会调用错误 block ,因为仅当发生系统级错误时才会创建错误对象。不会发生这种情况,因为请求已正确发送并且服务器发送了响应。如果您控制服务器,您可能应该让它返回状态代码 200 并在响应中包含应用程序级别状态代码,这将告诉您的应用程序输入的凭据不正确。

编辑:

要获取状态消息,您可以使用

+ (NSString *)localizedStringForStatusCode:(NSInteger)statusCode

这是 NSHTTPURLResponse 类的类方法。

    if (res.statusCode != 200)
{
// show the user the status message
NSLog(@"Error: %@", [NSHTTPURLResponse localizedStringForStatusCode: res.statusCode]); // This part is called

}

关于iOS HTTP 请求 - 获取错误响应消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16708899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com