- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试返回变量 statusCode,该变量应该采用 NSHTTPURLResponse 的 statusCode 属性的值,但是即使我检查并看到数据已成功发布,我也得到零。它返回我初始化变量的 0...我该怎么做?谢谢。
var statusCode = 0
let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(queue) {
let request = NSMutableURLRequest(URL: NSURL(string: escapedUrl!)!)
request.HTTPMethod = "POST"
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
statusCode = 0
} else if let httpResponse = response as? NSHTTPURLResponse {
if httpResponse.statusCode == 200 {
statusCode = httpResponse.statusCode
} else {
statusCode = 0
}
}
}
task.resume()
}
return statusCode
}
最佳答案
您在异步调用返回结果之前返回 statusCode
。您可以通过传递一个闭包并在 Web 服务返回结果时调用它来处理这种情况。为此,实现如下方法:
func postData(escapedUrl : String?, onCompletion:(Int)->Void)
{
let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(queue)
{
let request = NSMutableURLRequest(URL: NSURL(string: escapedUrl!)!)
request.HTTPMethod = "POST"
let task = NSURLSession.sharedSession().dataTaskWithRequest(request)
{
data, response, error in
var statusCode = 0
if error != nil
{
statusCode = 0
}
else if let httpResponse = response as? NSHTTPURLResponse
{
if httpResponse.statusCode == 200
{
statusCode = httpResponse.statusCode
}
else
{
statusCode = 0
}
}
// Passing back the result
onCompletion(statusCode);
}
task.resume()
}
}
您可以像这样调用该方法:
postData("yourURLString") { (statusCode) -> Void in
// Check status code here
}
关于ios - 从变量中的 NSHTTPURLResponse 返回 statusCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34044250/
根据苹果... https://developer.apple.com/library/content/samplecode/URLCache/Listings/Classes_URLCacheCon
我正在使用一个 API,该 API 在一个名为 Link 的字段内为我提供页眉中的下一页。 (例如 Github 也是这样做的,所以这并不奇怪。Github Doc ) 我正在使用的服务通过以下方式检
我在 HTTP header 中使用 if-modified-since 来决定是否应该下载文件。应用程序已经过测试,一切正常,但现在当我询问我的 NSHTTPURLResponse 实例 respo
如果我使用 NSURLConnection 从服务器获取数据并且它发回以以下内容开头的响应: HTTP/1.1 406 这里有一些文本字符串 有什么方法可以检索状态文本“此处有一些文本字符串”?我知道
我正在使用 web 服务,当由于验证原因而失败时,错误消息在 StatusDescription 中。我需要一种方法来获取它并将其显示给用户,但我在 NSHTTPURLResponse 上看到的只是
我需要修改 NSURLResponse 中的响应 header 。这可能吗? 最佳答案 我刚刚和一个 friend 讨论过这个问题。我的建议是编写 NSURLResponse 的子类。大致如下: @i
请原谅我问这个愚蠢的问题,但是有人可以告诉我 NSURLResponse 和 NSHTTPURLResponse 之间有什么区别 最佳答案 "NSURLResponse declares the pr
我正在尝试返回变量 statusCode,该变量应该采用 NSHTTPURLResponse 的 statusCode 属性的值,但是即使我检查并看到数据已成功发布,我也得到零。它返回我初始化变量的
我有一个名为 APIManager 的类的扩展: import Alamofire import Foundation // MARK: - Logout extension APIManager {
我有一个有趣的问题:当我的设备处于飞行模式时,NSHHTPURLResponse 提供的 HTTP 状态代码是 200“OK”。 它不应该因错误而失败,或者至少不响应它与代码 200 的有效连接吗?
是否可以在不使用该方法的情况下修改 NSHTTPURLResponse 上的 header initWithURL:statusCode:HTTPVersion:headerFields: 创建一个新
为什么 -[[NSHTTPURLResponse allHeaderFields] valueForKey:] 不区分大小写,而手动创建的 NSDictionary 的 valueForKey: 不区
我看过很多代码,包括 Apple 的 SimpleURLConnections 示例,它们只是将任何 NSURLResponse 转换为 NSHTTPURLResponse。如果它始终是 NSHTTP
我正在尝试阅读 NSHTTPURLResponse状态代码,但是 NSHTTPURLResponse返回零,但没有 NSError已创建。 这在 iOS 11 之前有效,但我没有收到关于它已被弃用的警
我正在使用 OCMock 来模拟 NSURLConnection/NSURLResponse(是的,我知道这些已被弃用)并且一切正常,因为我希望它模拟 http 响应代码和 http 主体。现在我正在
这个问题在这里已经有了答案: How can I get the Data from NSURLSession.sharedSession().dataTaskWithRequest (2 个答案)
我有这段代码: let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error)
我正在尝试从 URL 获取 JSON 文件并使用 Swift 返回内容。但是,代码在 let httpResponse = response as! 行失败。以下代码中的 NSHTTPURLRespo
我有一个非常奇怪的问题,我正在请求一个 URL,我想从中获取 cookie,我使用这种方式获取 cookie: - (void)connection:(NSURLConnection *)connec
无法调用非函数类型“NSHTTPURLResponse?”的值? 有人可以帮我吗? 这是代码 public func responseObject(queue: dispatch_queue_t
我是一名优秀的程序员,十分优秀!