【问题标题】:Get server response from NSURLSessionUploadTask using custom delegate使用自定义委托从 NSURLSessionUploadTask 获取服务器响应
【发布时间】:2015-07-06 23:43:23
【问题描述】:

我想使用NSURLSessionUploadTask 将图像上传到服务器,我已经使用自定义委托完成了这项工作

let task =  NSURLSession(
    configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),
    delegate: self,
    delegateQueue: NSOperationQueue.mainQueue()
).uploadTaskWithRequest(request, fromData: data)

task!.resume()

但我无法获得服务器的响应。使用task.response会返回错误码等头部信息,但不会返回页面实际显示的html。

我无法使用完成处理程序创建 url 任务,因为我需要获取上传进度。

如何使用 NSURLSessionUploadTask 从页面响应中获取 NSData?

【问题讨论】:

  • 你在课堂上实现了 NSURLSessionTaskDelegate 吗?应调用委托方法以指示上传进度以及完成后..
  • @Subbu 问题是我不确定如何获得服务器的响应。能拿到进度,能看到上传什么时候完成,但是看不到服务器的响应html是什么
  • hmm.. 可能是 task.response.data 有信息吗?您是否要将数据转换为 nsstring 并打印以查看是否为 html.. 类似 var datastring = NSString(data:task.response.data, encoding:NSUTF8StringEncoding) as String 的东西?
  • @Subbu 遗憾的是,没有task.response.data
  • 我很抱歉.. 只是想帮忙,你能尝试在“didReceiveData”中收集数据吗.. [你可以有一个全局 NSData 实例并附加接收到的数据] .. 在“didCompleteWithError”中你可以将数据转成字符串...

标签: ios swift swift2 nsurlsessionuploadtask


【解决方案1】:

您可以通过didReceiveData 收集数据,并且可以拥有一个全局 NSData 实例并附加接收到的数据。

然后,在didCompleteWithError中,可以将接收到的数据转换成字符串,得到响应的HTML。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多