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()
Sorry, es ist eigentlich das. Ich habe diese Zeile nicht eingefügt, ich tippte sie ein. – user3344239