5

when build my code then crash on Alamofire.request(request as! URLRequestConvertible).responseJSON(). pls suggest how to fix this crash

let url = NSURL(string: "https://jsonplaceholder.typicode.com/users")
let request = NSMutableURLRequest(url:url! as URL)
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

Alamofire.request(request as! URLRequestConvertible).responseJSON(){ response in

       switch response.result
       {
          case .success(let data):                
             print(" i got my Data Yup",data)          
          case .failure(let error):
             print(error)                                
        }
    }
Nirav D
  • 71,513
  • 12
  • 161
  • 183
Om Bhagwan
  • 65
  • 1
  • 3
  • May be this create Alamofire.request(request as! URLRequestConvertible).responseJSON() problem. – Amanpreet Dec 13 '16 at 09:25
  • Also in 2nd line you are using let request = NSMutableURLRequest(url:url! as URL) But in 5th line you take request as! **URLRequestConvertible** . Why? I think no need of it. Try it without convertible. – Amanpreet Dec 13 '16 at 09:28

3 Answers3

16

In Swift 3, all you have to do is to change NSMutableURLRequest to URLRequest and it will work. No need to cast. Also, set var so it can be swift mutable. :) Thanks, Markus for comment.

Nemanja
  • 455
  • 4
  • 15
9

change let request = NSMutableURLRequest(url:url! as URL) to var request = URLRequest(url: NSURL(string: url)! as URL) your code look like this:-

    let url = NSURL(string: "https://jsonplaceholder.typicode.com/users")
    var request = URLRequest(url: NSURL(string: url)! as URL)
    request.httpMethod = "GET"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")

    Alamofire.request(request as! URLRequestConvertible).responseJSON(){ response in

           switch response.result
           {
              case .success(let data):                
                 print(" i got my Data Yup",data)          
              case .failure(let error):
                 print(error)                                
            }
        }
Museer Ahamad Ansari
  • 5,414
  • 3
  • 39
  • 45
raju kumar
  • 91
  • 1
  • 3
0

You can also try with following syntax for request method:

Alamofire.request(strURL,method: .post, parameters: parameters as? [String : AnyObject], encoding: URLEncoding.default)
Amanpreet
  • 1,301
  • 3
  • 12
  • 29