iOS SDK中的任何位置是否定义了HTTP状态码?
我
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/
做了
grep -r '404' *
又上来空手所以答案几乎肯定是 “不”。
或者,也许代码被定义为相对值的枚举,如kHTTPErrorBadRequestCodes = 400和kHTTPErrorNotFound = kHTTPErrorBadRequestCodes + 4 ...所以你不能确定... – AliSoftware 2011-06-22 18:39:44
我可以有信心地说,这将是非常荒谬的,所以我怀疑它。 – Kalle 2011-06-22 19:11:46
我同意,我也对此表示怀疑;)但是我们仍然保持希望^^ – AliSoftware 2011-06-22 20:37:53
那么,他们在这个意义上定义的
[NSHTTPURLResponse localizedStringForStatusCode:(NSInteger)statusCode]
可以返回给定的状态码的字符串。那是你在找什么?
不完全 - 我使用HTTP状态代码来控制应用程序逻辑 - 例如,402会触发AlertView告诉用户他应该进行应用内购买才能继续。我有#defined HTTP_PAYMENT_REQUIRED 402,但我觉得应该已经在API中的某个位置出现了,就像它在Android中一样。 – esilver 2011-04-22 19:37:09
http状态码可以由服务器响应来定义。当有连接时,可以使用NSURLResponse读出statusCode。 那些4 **响应可以在您的服务器上进行内部定义。
我认为JocelynH已经说得对:根据w3.org [link](http://www.w3.org/Protocols/rfc2616/) RFC2616-SEC10。在OP中,“除了响应HEAD请求之外,服务器应该包含一个实体,其中包含对错误情况的解释......”我的猜测是,无论出于何种原因,Apple都选择退出枚举游戏对于400范围的错误,因为它们应该是服务依赖的。 (不是我必然同意这个推理。) – clozach 2011-08-25 18:27:29
我也找不到一个我期望存在的头文件,所以我不得不写一个我自己的头文件。
使用GitHub中的nv-ios-http-status项目中包含的HTTPStatusCodes.h,基于HTTP状态代码的分派可以写成如下形式。
#import "HTTPStatusCodes.h"
......
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
switch ([res statusCode])
{
// 200 OK
case kHTTPStatusCodeOK:
......;
}
......
}
我希望HTTPStatusCodes.h可以节省你和其他开发人员的时间。
有一个完整的OBJ-C库定义迄今为止所有代码: https://github.com/rafiki270/HTTP-Status-Codes-for-Objective-C
UPDATE: 新雨燕的版本是在这里: https://github.com/manGoweb/StatusCodes
我做了一个grep的-r '404' *在/杰韦利oper/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks /并且空手而来,所以答案几乎肯定是“不”。 – Kalle 2011-06-21 11:20:04
@Kalle你应该发表你的评论作为答案,它似乎是一个明确的我。 – benzado 2011-06-22 16:53:39
完成。 :)(最小注释长度填充) – Kalle 2011-06-22 17:53:53