2017-09-22 1 views
0

paramètres var = chaîne: StringAlamofire rapide réponse d'appel de service 3.1 postal code d'état 400 ce qui suit est mon code

parameters["client_id"] = "trackmykid" 
    parameters["client_secret"] = "trackmykid" 
    parameters["grant_type"] = "password" 
    parameters["roleId"] = "2" 
    parameters["device_token"] = "12324567" 
    parameters["os_type"] = "ios" 
    parameters["username"] = username 
    parameters["password"] = password 

laissez-têtes: httpHeaders = [ "Content-Type": « application/x- www-form-urlencoded », "autorisation": "Basic dHJhY2tteWtpZDp0cmFja215a2lk" ]

var Paramdict = [String: String]() 

    Paramdict = ["client_id":"trackmykid","client_secret":"trackmykid","grant_type":"password","roleId":"2","device_token":"123456","os_type":"ios", "username":username,"password":password] 


     Alamofire.request(Baseurl.appending("oauth/token"), method: .post, parameters: Paramdict as? Parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response:DataResponse<Any>) in 

     switch(response.result) { 
     case .success(_): 
      if response.result.value != nil{ 
       print(response.result.value ?? NSDictionary()) 

       onSuccess(response.result.value as! [AnyHashable : Any]) 

      } 
      break 

     case .failure(_): 

      print(response.result.error ?? NSString()) 

      onFailure(response.result.error!) 

      break 

     } 

Réponse comme:

{error = "invalid_request"; "error_description" = "Type de subvention manquant"; }

+0

vérifier ma réponse toute question puis dire que je vais vous aider à –

Répondre

0
let myParams = "UserName=\(txtemailaddress.text!)&Password=\(txtpassword.text!)&Grant_type=password&DeviceID=\(DEVICE_TOKEN as! String)&DeviceType=IOS" 
    let postData = myParams.data(using: String.Encoding.ascii, allowLossyConversion: true) 
    let postLength = String(format: "%d", postData!.count) 
    print(myParams) 
    let myRequest = NSMutableURLRequest(url: url) 
    myRequest.httpMethod = "POST" 
    myRequest.setValue(postLength, forHTTPHeaderField: "Content-Length") 
    myRequest.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") 
    myRequest.httpBody = postData 

    let str = AppUtilities.sharedInstance.jsonToString(json: mainParam) 

Alamofire.request(myRequest as URLRequestConvertible) 
     .responseJSON { response in 
      // do whatever you want here 

      switch response.result { 
      case .success(let value): 
       let result = Result.success(value) 
       print(result) 
       let json = try? JSONSerialization.jsonObject(with: response.data!, options: []) 
       let Response : NSDictionary = json as! NSDictionary 
       print(Response) 

       if Response.value(forKey: "success") as! String == "1"{ 
        // GOT RESPONSE SUCCESS 
       } 
       else{ 
        KRProgressHUD.dismiss() 
        AppUtilities.sharedInstance.showAlert(title: "Error", msg: Response.value(forKey: "message") as! NSString) 
       } 

       break 
      case .failure: 
       let result = Result<Data>.failure 

       KRProgressHUD.dismiss() 
       print("exception: \(response.result.error)") 

       break 
      } 
    } 

code Convert en chaîne JSON Param

func jsonToString(json: AnyObject) -> String{ 
     do { 
      let data1 = try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted) // first of all convert json to the data 
      let convertedString = String(data: data1, encoding: String.Encoding.utf8) // the data will be converted to the string 
      print(convertedString!) // <-- here is ur string 
      return convertedString! 
     } catch let myJSONError { 
      print(myJSONError) 
      return "" 
     } 
    } 
+0

Merci @Himanshu Moradiya pour Répondre :). J'ai été essayé vos lignes de code obtenu résultat toujours la même erreur: { error = "invalid_request"; "error_description" = "Type de subvention manquant"; } – Narasimha

+0

J'ai été vérifié dans Postman et Restclient avec l'url et les paramètres obtenant une réponse positive en tant que porteur et tous – Narasimha

+0

@Narasimha je pense que vous devez passer grand_type paramètre comme champ d'en-tête –