POST метод в быстром веб-сервисе - PullRequest
0 голосов
/ 28 января 2019

Доброе утро, друзья,

Я пытаюсь отправить данные на свой BBDD, но появляется ошибка:

Ошибка домена = NSCocoaErrorDomain Code = 3840 "Нет значения."UserInfo = {NSDebugDescription = Нет значения.}.Поиск информации и обнаружил, что вы должны добавить request.addValue ("application / json", forHTTPHeaderField: "Content-Type")

, но он по-прежнему не работает.Это работает, если я пытаюсь с URL-адресом https://jsonplaceholder.typicode.com/posts.

@IBAction func postTapped(_ sender: Any) {

    let paramater = ["Name":"Bob", "Room":"Telomer", "Teacher_Name":"Tomson"]

    /*
    guard let url = URL(string: "https://jsonplaceholder.typicode.com/posts") else {
        return
    }
     */
    guard let url = URL(string: "http://xxxxxxx/postClasses.php") else {
        return


    var request = URLRequest(url: url)

    request.httpMethod = "POST"

    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")  

    guard let httpBody1 = try? JSONSerialization.data(withJSONObject: paramater, options: []) else {
        return
    }

    request.httpBody = httpBody1

    let session = URLSession.shared

    session.dataTask(with: request) { (data, response, error) in

        if let response = response {
            print(response)
        }

        if let data = data {

            do{
                let json = try JSONSerialization.jsonObject(with: data, options: [])
                print(json)

            }
            catch{
                print(error)
            }
        }

    }.resume()

}

и в php

$name=         ( empty($_POST['Name']) )         ?  NULL  : $_POST['Name'];
$room=         ( empty($_POST['Room']) )         ?  ""    : $_POST['Room'];
$Teacher_Name= ( empty($_POST['Teacher_Name']) ) ?  ""    : $_POST['Teacher_Name'];

if ($name){

    if( $conexion=mysqli_connect($hostname,$username,$password,$database) ){

        $sql= "INSERT INTO classes(Name,Room,Teacher_Name) VALUES (?,?,?)";

        if ($stmt = mysqli_prepare($conexion, $sql)) {

            mysqli_stmt_bind_param($stmt, "sss", $name,$room,$Teacher_Name);

            if( mysqli_stmt_execute($stmt) ) {
                //$msg=printf("Insert", mysqli_stmt_affected_rows($stmt));
                $msg=printf("");
            }else{
                //$msg=printf("Error: %s ok", mysqli_stmt_error($stmt));
                $msg=printf("Account already exists");
            }
            mysqli_stmt_close($stmt);
        }else{
                $msg=printf("Error: %s ", mysqli_error($conexion));
        }
        mysqli_close($conexion);
    }else{
        $msg=printf("Error de conetion: %s", mysqli_connect_error());
    }
}else{
    $msg="";  
}

//echo $msg;

Большое спасибо заранее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...