首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

测试NSURLConnection与HTTP响应错误状态的使用

在云计算领域,NSURLConnection 是一个用于处理 URL 请求的 Objective-C 类,而 HTTP 响应错误状态是指服务器在响应请求时返回的错误状态码。在处理网络请求时,我们需要检查 HTTP 响应错误状态以确定请求是否成功。

NSURLConnection 提供了一个方法 sendSynchronousRequest:returningResponse:error: 用于发送同步请求。当请求完成时,该方法将返回一个 NSHTTPURLResponse 对象,该对象包含了 HTTP 响应的状态码。我们可以通过检查该状态码来判断请求是否成功。

一般来说,HTTP 响应状态码在 200-299 之间表示成功,300-399 之间表示重定向,400-499 之间表示客户端错误,500-599 之间表示服务器错误。我们可以通过检查状态码的范围来判断请求是否成功。

以下是一个使用 NSURLConnection 发送请求并检查 HTTP 响应状态码的示例代码:

代码语言:objc
复制
NSURL *url = [NSURL URLWithString:@"https://www.example.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

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

if (error) {
    // 请求失败
    NSLog(@"请求失败:%@", error.localizedDescription);
} else {
    // 请求成功
    NSInteger statusCode = response.statusCode;
    if (statusCode >= 200 && statusCode < 300) {
        // 请求成功
        NSLog(@"请求成功,状态码:%ld", (long)statusCode);
    } else if (statusCode >= 300 && statusCode < 400) {
        // 重定向
        NSLog(@"请求重定向,状态码:%ld", (long)statusCode);
    } else if (statusCode >= 400 && statusCode < 500) {
        // 客户端错误
        NSLog(@"客户端错误,状态码:%ld", (long)statusCode);
    } else if (statusCode >= 500 && statusCode < 600) {
        // 服务器错误
        NSLog(@"服务器错误,状态码:%ld", (long)statusCode);
    }
}

在这个示例中,我们首先创建了一个 NSURL 对象和一个 NSMutableURLRequest 对象,然后使用 sendSynchronousRequest:returningResponse:error: 方法发送请求。如果请求成功,我们将获取到一个 NSHTTPURLResponse 对象和一个包含响应数据的 NSData 对象。我们可以通过检查 NSHTTPURLResponse 对象的 statusCode 属性来判断请求是否成功。

如果请求失败,我们将获取到一个 NSError 对象,该对象包含了错误信息。我们可以通过检查 NSError 对象的 localizedDescription 属性来获取错误描述。

总之,在使用 NSURLConnection 处理网络请求时,我们需要检查 HTTP 响应错误状态以确定请求是否成功。我们可以通过检查 NSHTTPURLResponse 对象的 statusCode 属性来判断请求是否成功,并根据状态码的范围进行相应的处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flask 使用abort方法返回http错误码、http错误响应信息

abort方法使用场景 在api开发中,当视图处理http请求时候会出现错误情况。当发现这种情况,如果需要返回http错误码给浏览器,或者错误响应信息,这时候就可以使用abort()方法了。...abort方法引入 from flask import abort abort 方法示例 下面我编写一个登录login处理视图函数,设置一个必定会错误情况,并且分别设置返回错误码、错误响应信息情况...= '123': abort(404) # 返回http错误码 404 503 500 return "login sucess" if __name__ == '__main...__': app.run(debug=True) 要注意,abort返回错误码必须是标准http错误码。...下面使用浏览器访问看看,如下: ? 可以看到返回就是404错误信息,下面将错误码改为500看看,如下: ? 使用abort直接返回错误码是最常用情况,另外还有返回错误信息内容情况。

2.9K20

常见http状态码有哪些(常用http响应状态码)

大家好,又见面了,我是你们朋友全栈君。 HTTP状态码(HTTP Status Code)是一种表示网页服务器响应状态三位数字编码。通过这些数字,可以简化状态表达。...状态码有十种,其中首位数字为1-5。根据这5个数字,状态码可以分为5类。1XX表示请求正在处理;2XX表示请求已经成功处理;3XX表示重定向;4xx表示请求错误;5xx表示服务器错误。...在嗅探抓包过程中,常见状态吗有200和304。这两个状态码都关系到能否获取重要信息。当用户第一次请求服务器资源,服务器成功返回资源,这是状态码为200。...所以,状态码为200数据包往往包含用户从服务器获取数据。 每个资源请求完成后,通常会被缓存在客户端,并会记录资源有效时间和修改时间。当客户再次请求资源时,客户端首先从缓存中查找该资源。...服务器会判断修改时间,如果没有修改过,就会返回状态码304,告诉客户端该资源依然有效,客户端会直接使用缓存中资源。针对304响应,渗透人员可以分析对应请求包,获取资源路径。

1.1K20
  • Flask 使用abort方法返回http错误码、http错误响应信息

    abort方法使用场景 在api开发中,当视图处理http请求时候会出现错误情况。当发现这种情况,如果需要返回http错误码给浏览器,或者错误响应信息,这时候就可以使用abort()方法了。...abort方法引入 from flask import abort abort 方法示例 下面我编写一个登录login处理视图函数,设置一个必定会错误情况,并且分别设置返回错误码、错误响应信息情况...= '123': abort(404) # 返回http错误码 404 503 500 return "login sucess" if __name__ == '__main...__': app.run(debug=True) 要注意,abort返回错误码必须是标准http错误码。...下面使用浏览器访问看看,如下: 可以看到返回就是404错误信息,下面将错误码改为500看看,如下: 使用abort直接返回错误码是最常用情况,另外还有返回错误信息内容情况。

    1.4K20

    如何使用Forbidden绕过4xx HTTP响应状态

    关于Forbidden Forbidden是一款基于PycURL开发网络安全工具,该工具可以帮助广大研究人员轻松绕过4xx HTTP响应状态码。...工具处理结果支持按HTTP响应状态代码升序排列、内容长度降序排列和ID升序排列。 如果需要过滤误报信息,请使用项目提供cURL命令手动检查每个内容长度。...如果处理结果表明没有实现4xx HTTP响应状态码绕过,只需要直接忽略具有相同内容长度所有其他结果即可。 注意:该工具目前已在Kali Linux v2021.4(64位)平台进行过测试。...注意:考虑到访问频率限制,如果你只想针对同一个域名进行测试并期望获取更好结果,请在运行脚本时多给一些间隔时间。...工具自动化使用 绕过“403 Forbidden” HTTP响应状态码: count=0; for subdomain in $(cat subdomains_403.txt); do count=$

    94620

    TCPIP协议族(一) HTTP简介、请求方法响应状态

    响应头中,第一行就是状态行,“HTTP/1.1”表示使用HTTP协议1.1版本,状态200表示响应成功,"OK"则是状态原因短语。常用状态,稍后会详细介绍。 ?...本部分是以HTTP协议角度来聊请求方法,所以之前会有稍稍不同。本部分我们就来聊一下HTTP协议请求方法和响应状态码。...2、响应状态码 聊完请求方法后,接下来我们来聊聊HTTP协议响应状态码。...顾名思义,响应状态码是用来标志HTTP响应状态响应状态响应状态码和响应原因短语构成,当然状态码有很多中,本部分就挑出来常用状态码进行讨论。...5xx ---- Server Error (服务器错误),服务器处理请求时出错。 上面是响应状态整体分类,接下来介绍一些常用响应状态码。

    1.3K60

    网站HTTP错误状态代码及其代表意思总汇

    500.20 服务器错误:URL 授权域无法找到。 500 100 内部服务器错误:ASP 错误。 501 标题值指定配置没有执行。 502 Web 服务器作为网关或代理服务器时收到无效响应。...0152 安全错误。处理用户安全凭据时发生错误。 0153 线程错误。新线程请求已失败。 0154 HTTP 头写入错误HTTP 头无法写入客户端浏览器。 0155 页内容写入错误。...0156 头错误HTTP 头已经写入到客户端浏览器。任何 HTTP 头必须在写入页内容之前修改。 0157 启用缓冲。缓冲启用后不能关闭。 0158 URL 丢失。URL 是必需。...Global.asa 中只能使用 METADATA TYPE="TypeLib"。 0244 无法启用会话状态。应用程序中禁用会话时,无法启用会话状态。 0245 代码页值混合使用。...0251 超出响应缓冲区限制。ASP 页执行引起响应缓冲区超出其配置限制。

    5.8K20

    前端测试题:对于WEB服务有关http响应状态码及含义,说法有误是?

    考核内容:前后端通信状态 题发散度: ★★ 试题难度: ★★ 解题思路: 说到这里首先大家要明白以下操作: http:超文本传输协议 WEB在传输层采用是TCP协议。...浏览器服务器建立连接时会经过TCP三次握手,一次TCP连接可以建立多个HTTP请求。 状态码为服务器接受请求之后返回响应信息,浏览器可以根据响应信息状态码判断请求是否成功。...使用CHROME打开网站如(www.coolneng.com), 按F12,可以看到控制台中加载WEB资源,及状态码 ?...对于一个前端工程师来说,要最少要掌握以下web页面每个资源状态信息及状态含义 200:服务器响应正常。...404:需要访问资源不存在。 405:需要访问资源被禁止。 407:访问资源需要代理身份验证。 414:请求URL太长。 500:服务器内部错误 什么情况下会返回304状态码?

    81730

    HTTP 状态码 301 302 区别

    被请求资源已永久移动到新位置,并且将来任何对该资源引用都使用响应返回若干个 URI 之一。301 资源除非额外指定,否则都是可缓存。...注意:对于某些使用 HTTP/1.0 协议浏览器,当它们发送 POST 请求得到了一个 301 响应的话,接下来重定向请求将会变成 GET 方式。...因此状态码 303 和 307 被添加了进来,用以明确服务器期待客户端进行何种反应。 301 和 302 相同点 都表示资源重定向。 新 URI 地址都是在响应 Location 中返回。...访问本网页时候,由于使用 https 协议,并且设置 http 自动重定向到 https,所以假如直接使用 http 协议http://lz5z.com进行访问,会有一次 301 重定向。...所以 301 是对搜索引擎更加友好重定向,建议只要不是资源临时转移,都可以使用 301 方式。 参考资源 HTTP状态码#3xx重定向

    1.9K21

    解析一次完整HTTP请求响应

    图片来自:理解Http请求响应http://android.jobbole.com/85218/ 以上完整表示了HTTP请求和响应7个步骤,下面从TCP/IP协议模型角度来理解HTTP请求和响应如何传递...第四 HTTP协议 Http是什么? 通俗来讲,他就是计算机通过网络进行通信规则,是一个基于请求响应,无状态,应用层协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)...四个基于: 请求响应:客户端发送请求,服务器端响应数据 无状态:协议对于事务处理没有记忆能力,客户端第一次服务器建立连接发送请求时需要进行一系列安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求...TCP/IP:Http使用TCP作为它支撑运输协议。HTTP客户机发起一个服务器TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP。...HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。 1.状态行 由3部分组成,分别为:协议版本,状态码,状态码描述。

    1.6K40

    HTTP状态码502504区别及解决思路

    HTTP响应返回502504意味着什么?...首先得搞清楚502错误和504错误区别,以我比较熟悉PHP为例,502是PHP-FPM(PHP进程管理器没办法从进程池里找到可分配进程来处理请求了,就会返回502错误,本质上是PHP进程状态异常...;而504错误是网关超时,它代表负责处理HTTP请求PHP进程超过了约定最长时间仍未返回处理结果,出现这种异常原因通常是sql执行时间太长或代码里出现了死循环之类问题。...好了,下面说一下遇到502错误时怎样判断PHP进程数是否够用,办法是很简单,思路就是看一下目前开启了多少个PHP-CGI进程,再看一下目前非空闲状态PHP-CGI进程,如果这两个数是接近,就意味着当出现新请求时...,那不要想了,就是这里问题,把相应SQL优化好就行了,如果数据库慢日志里并没有明显异常情况,那就得考虑是不是代码里有耗时太长逻辑,或有外部接口通讯代码,因为网络延时或对方响应时间太长,而你异常机制没做好

    5.4K30

    一次完整HTTP请求响应涉及哪些知识?

    图片来自:理解Http请求响应http://android.jobbole.com/85218/ 以上完整表示了HTTP请求和响应7个步骤,下面从TCP/IP协议模型角度来理解HTTP请求和响应如何传递...第四 HTTP协议 Http是什么? 通俗来讲,他就是计算机通过网络进行通信规则,是一个基于请求响应,无状态,应用层协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)...四个基于: 请求响应:客户端发送请求,服务器端响应数据 无状态:协议对于事务处理没有记忆能力,客户端第一次服务器建立连接发送请求时需要进行一系列安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求...TCP/IP:Http使用TCP作为它支撑运输协议。HTTP客户机发起一个服务器TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP。...下面列举几个常见:两张趣图助你理解 HTTP 状态码! ? 2.响应头部 请求头部类似,为响应报文添加了一些附加信息 常见响应头部如下: ? 3.响应数据 用于存放需要返回给客户端数据信息。

    43250

    前端测试题:关于Promise对象状态,下列说法错误是?

    (1)对象状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。...只有异步操作结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字由来,它英语意思就是“承诺”,表示其他手段无法改变。...(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。...Accept", "application/json"); client.send(); }); return promise; }; getJSON("http...如果是一个错误地址: ? 答案: D、 rejected失败可以状变成fulfilled成功

    3K10

    React技巧1(状态组件状态组件使用)

    1.React 技巧1(状态组件状态组件使用) ----2018.01.04 2.React 技巧2(避免无意义父节点)----2018.01.05 3.React 技巧3(如何优雅渲染一个List...什么是React状态组件和无状态组件? 什么时候使用React状态组件? 什么时候使用React无状态组件? 我在刚学习时候,就比较傻,不管什么情况都使用状态组件,这样当然也行,也不会出错!...但是作为一名有责任心程序猿,虽然外表屌丝,但内心还是很极客!那我们如何优雅书写React组件呢? React状态组件? 顾名思义该组件有状态,有状态就有对应UI 变化!...如果你UI 不需要变化,请不要使用 状态组件! 如下就是典型官方提供一个状态组件 ? 因为这是一个计数器,他是不断增长变化,只要UI变化,那么就需要用到状态组件! React无状态组件?...那么什么时候用无状态组件呢? 就是组件本身不需要负责UI变化,不包括子组件 回过头看我们之前Index.jsx,和Shop.jsx ? ? 可能新手一开始,困难地方就是在于如何规划组件,怎么写?

    1.8K60

    一次完整HTTP请求响应涉及了哪些知识?

    通过以上步骤我们从TCP/IP模型角度来理解了一次HTTP请求响应过程。 下面这张图更清楚明白: ? 下面具体来看如何进行一步步操作。...四、HTTP协议 Http是什么? 通俗来讲,他就是计算机通过网络进行通信规则,是一个基于请求响应,无状态,应用层协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)...四个基于: 请求响应:客户端发送请求,服务器端响应数据 无状态:协议对于事务处理没有记忆能力,客户端第一次服务器建立连接发送请求时需要进行一系列安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求...TCP/IP:Http使用TCP作为它支撑运输协议。HTTP客户机发起一个服务器TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP。...HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。 1.状态行 由3部分组成,分别为:协议版本,状态码,状态码描述。

    58140

    必备指南:20个常见HTTP状态解析应用

    必备指南:20个常见HTTP状态解析应用 介绍 HTTP 状态码是在 Web 开发中经常遇到重要概念之一。了解不同状态码及其含义,对于调试和优化 Web 应用程序至关重要。...一、1xx 类状态码:信息性状态码 1xx 类状态码用于提供关于请求一些信息性响应,而不是指示成功或失败。这些状态码通常在客户端期待持续连接情况下使用,以通知客户端后续操作状态。...合理使用缓存策略,可以减少对服务器请求次数,提高响应速度,并降低带宽和资源消耗。...总结 HTTP 状态码是 Web 开发中不可或缺一部分,通过深入了解不同状态码及其含义,我们可以更好地理解和处理 HTTP 请求和响应。...207 Multi-Status(多状态):主要用于 WebDAV 协议中,表示对多个资源操作状态。通常XML负载一起使用,提供更详细操作结果。

    3.2K10

    一次完整HTTP请求响应涉及了哪些知识?

    图片来自:理解Http请求响应 以上完整表示了HTTP请求和响应7个步骤,下面从TCP/IP协议模型角度来理解HTTP请求和响应如何传递。...四、HTTP协议 Http是什么? 通俗来讲,他就是计算机通过网络进行通信规则,是一个基于请求响应,无状态,应用层协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)...四个基于: 请求响应:客户端发送请求,服务器端响应数据 无状态:协议对于事务处理没有记忆能力,客户端第一次服务器建立连接发送请求时需要进行一系列安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求...TCP/IP:Http使用TCP作为它支撑运输协议。HTTP客户机发起一个服务器TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP。...HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。 1.状态行 由3部分组成,分别为:协议版本,状态码,状态码描述。

    67950

    EasyDSSEasyNTS通过Golang使用http如何优化响应body未关闭问题?

    我们大多数平台都是用Golang进行编译,在很多视频流媒体软件比如EasyDSS、EasyNTS等产品编译中,经常会出现要使用http接口访问其他服务接口情况,一般编程代码如下: // 获取...url 数据 func getUrl(url string) ([]byte, error) { client := http.Client{ Timeout: 5 * time.Second...,其中有个非常需要注意问题,即没有将对应响应Body关闭,短期不关闭代码不会出现什么问题,但是该种代码会让内存持续增高,导致系统资源利用率降低。...defer resp.Body.Close() 完整代码如下 // 获取 url 数据 func getUrl(url string) ([]byte, error) { client := http.Client...error %s", url, err.Error()) return nil, err } return body, nil } 该代码在原本代码上做了优化,进一步适应了用户使用

    1.5K50
    领券