swiftpost方法和PHP不说话

swiftpost方法和PHP不说话,php,json,swift,post,Php,Json,Swift,Post,在阅读了几篇不同的教程之后,我很难弄明白为什么我的文章不起作用 斯威夫特: func request(endpoint: String, loginData: Login, completion: @escaping (Result<User, Error>) -> Void) { guard let url = URL(string: baseURL + endpoint) else {

在阅读了几篇不同的教程之后,我很难弄明白为什么我的文章不起作用

斯威夫特:

func request(endpoint: String,
                 loginData: Login,
                 completion: @escaping (Result<User, Error>) -> Void) {
        guard let url = URL(string: baseURL + endpoint) else {
            completion(.failure(NetworkingError.badURL))
            return
        }

        var request = URLRequest(url: url)

        do {
            let loginData = try JSONEncoder().encode(loginData)

            request.httpBody = loginData

            request.httpMethod = "POST"
            request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        } catch {
            completion(.failure(NetworkingError.badURL))
        }

        handleResponse(for: request, completion: completion)
    }

    func handleResponse(for request: URLRequest,
                        completion: @escaping (Result<User, Error>) -> Void) {
        let session = URLSession.shared
        let task = session.dataTask(with: request) { (data, response, error) in
            DispatchQueue.main.async {
                guard let unwrappedResponse = response as? HTTPURLResponse else {
                    completion(.failure(NetworkingError.badResponse))
                    return
                }

                print(unwrappedResponse.statusCode)

                switch unwrappedResponse.statusCode {
                case 200 ..< 300:
                    print("Success")
                default:
                    print("Failure")
                }

                if let unwrappedError = error {
                    completion(.failure(unwrappedError))
                }

                print("Data reponse:", data!)
                if let unwrappedData = data {
                    print("unwrappedData", unwrappedData)
                    do {
                        let json = try JSONSerialization.jsonObject(with: unwrappedData, options: [])
                        print("JSON", json)

                        if let user = try? JSONDecoder().decode(User.self, from: unwrappedData) {
                            completion(.success(user))
                        } else {
                            let errorResponse = try JSONDecoder().decode(ErrorResponse.self, from: unwrappedData)
                            completion(.failure(errorResponse))
                        }
                    } catch {
                        print("Data Failure")
                        completion(.failure(error))
                    }
                }
            }
        }
        task.resume()
    }

我错过了什么或做错了什么?任何指导都会有帮助。我确实从一个教程中得到了这个。教程中唯一没有显示的是实际的API。我只是想让它发挥作用,然后我可以根据自己的需要进行修改,并将其应用到我自己的程序中

我通过json传递数据。所以我必须解码json。 我只是补充说:

$postdata = json_decode(file_get_contents("php://input"),TRUE);

您刚刚创建了一个请求,但根本没有执行。你可以检查和其他答案,让它工作。好的,我已经更新了我的答案。我确实遗漏了一些代码,因为我认为错误在这一部分中。您以JSON格式发送参数,但您的PHP代码不适用于JSON。更新PHP代码以接收JSON。或者更新您的Swift代码,以发送正确的
$\u POST
@OOPer请求。谢谢您的指导。经过一些研究和测试,我终于让它工作了。现在开始下一个要解决的任务。很高兴听到这个消息。请花些时间发布您的解决方案作为答案。
Test Decode:  {
    email = asd;
    password = qwe;
}
$postdata = json_decode(file_get_contents("php://input"),TRUE);