2015-08-04 8 views
8

मैं एक dataTaskWithUrl है:आप डेटा टास्क WithUrl में शीर्षलेख कैसे जोड़ते हैं?

 var headers: NSDictionary = ["X-Mashape-Key": "my-secret-key" , "Accept" : "application/json"] 
     var stringUrl = "https://restcountries-v1.p.mashape.com/all" 
     stringUrl = stringUrl.stringByReplacingOccurrencesOfString(" ", withString: "+") 
     let url = NSURL(string: stringUrl) 
     let session = NSURLSession.sharedSession() 
     let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in 

     if let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as? NSDictionary{ 

      println(jsonResult) 

     }else{ 
      println("error") 
     } 

     }) 

     task.resume() 

मैं अपने काम के लिए हेडर जोड़ना चाहते हैं।

दूसरे शब्दों में, मैं तेजी से करने के लिए इस कोड को परिवर्तित करने के लिए करना चाहते हैं:

NSDictionary *headers = @{@"X-Mashape-Key": @"my-secret-key", @"Accept": @"application/json"}; 
UNIUrlConnection *asyncConnection = [[UNIRest get:^(UNISimpleRequest *request) { 
    [request setUrl:@"https://restcountries-v1.p.mashape.com/all"]; 
    [request setHeaders:headers]; 
}] asJsonAsync:^(UNIHTTPJsonResponse *response, NSError *error) { 
    NSInteger code = response.code; 
    NSDictionary *responseHeaders = response.headers; 
    UNIJsonNode *body = response.body; 
    NSData *rawBody = response.rawBody; 
}]; 

मैं dataRequests के लिए नया हूँ। मैं उद्देश्य सी कोड नहीं समझता लेकिन मैंने उस कोड को देखा जब मैंने अनुमान लगाया। मुझे हेडर का उपयोग करने की आवश्यकता है क्योंकि अगर मैं सीधे https://restcountries-v1.p.mashape.com/all पर जाने का प्रयास करता हूं, तो मुझे एक त्रुटि मिलती है। मुझे इस वेबसाइट से उद्देश्य सी कोड प्राप्त हुआ था: https://www.mashape.com/fayder/rest-countries-v1। सही दिशा में किसी भी मदद की बहुत सराहना की जाएगी।

धन्यवाद

उत्तर

5

यह वही जवाब है उपयोग करने के लिए स्विफ्ट के लिए वाक्य रचना के रूप में @ लियो answer लेकिन एक छोटे से बदल जिसके कारण मुझे लगता है कि "जवाब अद्यतन करने के लिए अच्छा है चाहते हैं थोड़ा सा"। तो यह स्विफ्ट 3 के साथ काम करना चाहिए।

func get(_ url: String) { 
    if let url = URL(string: url) { 
    var request = URLRequest(url: url) 
    // Set headers 
    request.setValue("headerValue", forHTTPHeaderField: "headerField") 
    request.setValue("anotherHeaderValue", forHTTPHeaderField: "anotherHeaderField") 
    let completionHandler = {(data: Data?, response: URLResponse?, error: Error?) -> Void in 
     // Do something 
    } 
    URLSession.shared.dataTask(with: request, completionHandler: completionHandler).resume() 
    } else { 
    // Something went wrong 
    } 
5

आप dataTask

var stringUrl = "https://restcountries-v1.p.mashape.com/all" 
    stringUrl = stringUrl.stringByReplacingOccurrencesOfString(" ", withString: "+") 
    let url = NSURL(string: stringUrl) 
    let session = NSURLSession.sharedSession() 
    var muableRequest = NSMutableURLRequest(URL: url!) 
    muableRequest.setValue("application/json", forHTTPHeaderField: "Accept") 
    muableRequest.setValue("my-secret-key", forHTTPHeaderField: "X-Mashape-Key") 

    let task = session.dataTaskWithRequest(muableRequest, completionHandler: { (data, response, error) -> Void in 
     if let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil){ 

      println(jsonResult) 

     } 

    }) 
    task.resume() 
+0

बहुत बहुत धन्यवाद @ लियो! यह एक सम्मोहन की तरह काम करता है। –

संबंधित मुद्दे