iOS读取服务器的文件内容,ios – NSURLSessionUploadTask如何读取服务器响应

我正在使用NSURLSessionUploadTask来上传文件.

以下是我的代码的一些部分不完整

let session:NSURLSession = NSURLSession(configuration: config,delegate: self,delegateQueue: NSOperationQueue .mainQueue())

let sessionTask:NSURLSessionUploadTask = session.uploadTaskWithStreamedRequest(request

但问题是我无法得到服务器发回的JSON响应.

以下代表也不会触发,但其他代表正在触发

func URLSession(session: NSURLSession,dataTask: NSURLSessionDataTask,didReceiveData data: NSData)

我使用的代码:

func sendFileToServer1(fileName:String,fileData:NSData,serverURL:String){

let body = NSMutableData()

let mimetype = "application/octet-stream"

// let mimetype = "video/quicktime"

let boundary = "Boundary-\(NSUUID().UUIDString)"

let url = NSURL(string: serverURL)

let request = NSMutableURLRequest(URL: url!)

request.HTTPMethod = "POST"

request.setValue("multipart/form-data; boundary=----\(boundary)",forHTTPHeaderField: "Content-Type")

body.appendData("------\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData("Content-Disposition:form-data; name=\"file\"; filename=\"\(fileName)\"\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData("Content-Type: \(mimetype)\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData(fileData)

body.appendData("\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData("------\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData("Content-Disposition:form-data; name=\"submit\"\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData("Submit\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData("------\(boundary)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

request.HTTPBody=body

let config:NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()

let session:NSURLSession = NSURLSession(configuration: config,delegateQueue: NSOperationQueue .mainQueue())

let sessionTask:NSURLSessionUploadTask = session.uploadTaskWithStreamedRequest(request)

sessionTask.resume()

}

func URLSession(session: NSURLSession,didBecomeInvalidWithError error: NSError?) {

print("error")

}

func URLSession(session: NSURLSession,task: NSURLSessionTask,didSendBodyData bytesSent: Int64,totalBytesSent: Int64,totalBytesExpectedToSend: Int64) {

print("Bytes sent:\(bytesSent) Total bytes sent:\(totalBytesSent) Total bytes expected to send:\(totalBytesExpectedToSend)")

}

func URLSession(session: NSURLSession,didReceiveResponse response: NSURLResponse,completionHandler: (NSURLSessionResponseDisposition) -> Void) {

print("response:\(response as! NSHTTPURLResponse)")

}

func URLSession(session: NSURLSession,didReceiveData data: NSData) {

print("data didReceiveData")

}

我已经符合代表们的意愿

> NSURLSessionDataDelegate

> NSURLSessionDelegate

> NSURLSessionTaskDelegate

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值