2016-08-17 103 views
0

我正在构建移动应用程序,以我的django为基础的后端。我使swift POST请求是这样的:如何发送json请求到服务器,而不是等待响应

var request: NSMutableURLRequest = NSMutableURLRequest() 
     var url = "https://webapp.com/makepost/" 
     url += NSUserDefaults.standardUserDefaults().stringForKey("userPk")! 
     url += "/" 

     var err: NSError? 

     request.URL = NSURL(string: url) 
     request.HTTPMethod = "POST" 
     request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData 




     request.setValue("application/json", forHTTPHeaderField: "Content-Type") 


     do { 

      request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(JSONObject, options: NSJSONWritingOptions(rawValue:0)) 
     } catch _ { 
      print ("error") 

     } 







NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue()) {(response, data, error) -> Void in 


      var query = String(data: data!, encoding: NSUTF8StringEncoding) 


      query = query!.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil) 
      query = query!.stringByReplacingOccurrencesOfString(")", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil) 
      print(query) 
      //update ui 




     } 

只要我做这个职位它创造了必要的模型django通过阅读jsonObject

响应无关紧要,并且可能需要很长时间才能通过FCM通知其他用户。

这就是我想要做的事:

  1. 做一个POST请求。
  2. 忽略响应。
  3. 在发出发布请求后立即更新UI。

我该怎么做到这一点?

回答

-1

像这样

//set request variable here 
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT 
dispatch_async(dispatch_get_global_queue(priority, 0)) { 


      NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue()) {(response, data, error) -> Void in 


       var query = String(data: data!, encoding: NSUTF8StringEncoding) 







      } 
      sleep(2) 
      // wait two seconds for models to create in backend 


      dispatch_async(dispatch_get_main_queue()) { 

       self.refresh(self.refreshButton) 
       //refresh ui here with method that fires another get request 




      } 
     } 
相关问题