मैं फ़ाइल अपलोड करने के लिए 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, 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