2016-06-02 4 views
0

Ich bin neu zu schnell und machen eine einfache Anwendung, die Celsius in Fahrenheit mit diesem konvertiert: JSON WebServiceMedientyp wird nicht unterstützt Fehler in json post-Methode Swift

Mein Code ist auf eine Schaltfläche btn Aktion:

@IBAction func btn(sender: AnyObject) { 
    let celnum = txtfirld.text 

    let myUrl = NSURL(string: "http://webservices.daehosting.com/services/TemperatureConversions.wso"); 
    print("pass 1") 
    let request = NSMutableURLRequest(URL: myUrl!); 
    request.HTTPMethod = "POST"; 
    print("pass 2") 
    let postString = "nCelsius=\(celnum)" 
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding); 
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ 
     data, response, error in 

     print("pass 3") 

     if error != nil { 
      print("Error 1") 
      return 
     } 
     let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
     print("responseString = \(responseString)") 

     do{ 
      let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary 
      if let parseJson = json{ 
       let resultValue = parseJson["status"] as! String! 
       print("result:\(resultValue)") 


      } 

     } catch {print("Error 2")} 
} 

    task.resume() 

} 

Aber es gibt mir Fehler wie diese auf der Konsole:

pass 1 
pass 2 
pass 3 
responseString = Optional(The server cannot service the request because the media type is unsupported.) 
Error 2 

Plaese Hilfe danken u :)

+0

Ist dies, wie wir URL var zuweisen in schnell? 'let myUrl = NSURL (string:" http://webservices.daehosting.com/services/TemperatureConversions.wso ")' –

+0

Wenn Sie nur die Temperatur von Celsius in Fahrenheit oder umgekehrt umrechnen möchten, müssen Sie keinen Webservice verwenden . Sie können einfach eine Methode mit eigener Logik erstellen. – Lion

+0

Ya ich kann, aber ich tue dies, um zu lernen, wie man JSON Web Service verwendet –

Antwort

1

1 - Sie sollen Ihre Anfrage Content-Type gesetzt: - Ihr Körper ist nicht im JSON-Format, Verwendung

request.setValue(" application/json; charset=utf-8", forHeader:"Content-Type")

2:

let params = ["nCelscius" : 1212] 
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions()) 
Verwandte Themen