2017-02-12 4 views
0

Nach stundenlangem Durchsuchen des Stapels und Überprüfen ähnlicher Fragen kann ich dies immer noch nicht zum Laufen bringen. Bitte helfen Sie mir!JSON-Fehler beim Erstellen einer Postanforderung an den Server

Alles, was ich bin versucht, einen Benutzername zu meinem Server und sendet es in MySQL speichern - nur um es zum Laufen zu bringen ...

ich die Benutzername durch an den Server senden kann und sogar fest codierte Daten wieder zurück an den iOS-Simulator, um den Text eines Labels zu setzen, , aber sobald ich die Funktion zum Speichern der Daten in MySQL hinzufüge, erhalte ich den Fehler: "Fehler Domain = NSCOAErrorDomain Code = 3840" Ungültiger Wert um Zeichen 0. "UserInfo = { NSDebugDescription = Ungültiger Wert um das Zeichen 0.} "

Entschuldigung für merkwürdige Namenskonventionen, ich wende mich von einem Tutorial ab, dem ich gefolgt bin. Danke!

SWIFT 3:

func Apitest(name: String) { 

    let json = ["user" : name] 

    do { 
     let jsonData = try JSONSerialization.data(withJSONObject: json, options: .prettyPrinted) 

     let url = NSURL(string: "I put the actual path here, don't worry")! 
     let request = NSMutableURLRequest(url: url as URL) 
     request.httpMethod = "POST" 

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

     let task = URLSession.shared.dataTask(with: request as URLRequest){ data, response, error in 
      if error != nil{ 
       print("First Error -> \(error)") 
       return 
      } 
      do { 
       let result = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject] 
       print("Result -> \(result!)") 

       let label = result?["messages"] as! String 

       print(label) 

       self.setupLabel(text: label) 

      } catch { 
       print("Second Error -> \(error)") 
      } 
     } 

     task.resume() 
    } catch { 
     print(error) 
    } 
} 

API-Code (Python/Kolben)

@app.route('/api/get_messages/') methods=['POST']) 
def get_messages(): 
json = request.get_json() 

api_test(json['user']) 

return jsonify({'messages':json['user']}) 

MySQL Funktion:

def api_test(user): 
c, conn = connection() 
c.execute("INSERT INTO users (email) VALUES (%s)", (user)) 
conn.commit() 
conn.close() 
c.close() 

Antwort

0

vl Ioking bei Ihrem Code Ich würde sagen, Ihre einfügen Befehl sollte sein:

+0

Sorry, es ist eigentlich das. Ich habe diese Zeile nicht eingefügt, ich tippte sie ein. – user3344239

Verwandte Themen