私はNSURLSessionUploadTaskを使用してファイルをアップロードしています。ここで NSURLSessionUploadサーバーの応答を読み取る方法
は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, delegate: self, 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, dataTask: NSURLSessionDataTask, didReceiveResponse response: NSURLResponse, completionHandler: (NSURLSessionResponseDisposition) -> Void) {
print("response:\(response as! NSHTTPURLResponse)")
}
func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) {
print("data didReceiveData")
}
私は NSURLSessionDataDelegate代表者
- に適合しているが
- NSURLSessionDelegate
- NSURLSessionTaskDelegate
おかげ
これを参照してください:https://www.raywenderlich.com/110458/nsurlsession-tutorial-getting-started – Santosh
私が知っている限り、アップロードタスクでは、respsoneサーバーのデータを読み取る方法はありません... 。私はサーバーの応答ヘッダーフィールドを取得できますが、サーバーが送信するペイロードデータは取得できません。私が間違っていると私を訂正します。 –
他のどの代理者が解雇されますか? – Larme