2017-08-09 1 views
1

Ich habe Anfrage mit Feldern zu senden, wie beispielsweiseAlamofire Serveranforderungen konvertieren ganzzahligen Parameter zu bespannen

id:1 

Problem ist, dass, wenn I Apache Protokolle überprüfen sehe ich, dass Feld

id:"1" 

ist

in Form von Das heißt, anstatt Integer 1 zu haben, bekomme ich String "1". Hier ist mein Code

let parameters: Parameters = [ 
     "viewModel":viewModel]; 
    let headers: HTTPHeaders = [ 
     "Authorization": "Bearer " + getToken(), 
     "Accept": "application/json" 
    ] 
    Alamofire.request(setUrl(),method:.post,parameters:parameters,headers: headers).responseJSON{ 
     response in 
     print("Response:\(String(describing:response.result.value))") 

     switch response.result { 
     case .success: 
      self.status = true; 
      if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { 
       self.responseString = utf8Text 
      } 
      self.responseJSON = JSON(response.result.value as Any) 
     case .failure: 
      self.status = false; 
     } 
     completed() 
    } 

Bevor Anfrage initiiert wird, habe ich sichergestellt, dass alle erforderlichen Felder in Integer sind. Andere Felder sind Zeichenketten, daher verwende ich das Wörterbuch des Typs [String:Any] Was mache ich falsch? Ich muss sicherstellen, dass ganzzahlige Felder ganzzahlig bleiben.

+0

müssen Sie NSNumber statt Integer zur Herstellung einer Anfrage verwenden. – shahnilay86

Antwort

0

Ich weiß, dass dies eine späte Antwort ist, sicherlich wird es jemand helfen. Ich habe auch das gleiche Problem gesehen und einige Stunden gebraucht, um es herauszufinden.

Sie benötigen Codierung in Alamofire Anfrage zu setzen inorder um dieses Problem zu lösen.

encoding: JSONEncoding.default

So Die Anforderung wird wie

Alamofire.request (setUrl() Methode: .post, Parameter: Parameter, encoding: JSONEncoding.default, headers : headers) .responseJSON { Reaktion in

0

Einstellen Codierung

JSONEncoding.default 

funktionierte perfekt für mich. Auch

Der Antrag kann auch wie

Alamofire.request(url, method: .post, parameters: object, encoding: JSONEncoding.default) 

und arbeitet gut mit anderen Arten von Methoden!