Om Bhagwan
Om Bhagwan

Reputation: 65

Could not cast value of type 'NSMutableURLRequest' (0x11beb7040) to 'Alamofire.URLRequestConvertible' (0x11beb9040)

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)                                
        }
    }

Upvotes: 5

Views: 6380

Answers (3)

raju kumar
raju kumar

Reputation: 101

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)                                
            }
        }

Upvotes: 10

Nemanja
Nemanja

Reputation: 453

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.

Upvotes: 16

Amanpreet
Amanpreet

Reputation: 1321

You can also try with following syntax for request method:

Alamofire.request(strURL,method: .post, parameters: parameters as? [String : AnyObject], encoding: URLEncoding.default)

Upvotes: 0

Related Questions