使用PHP API端点的Swift网络调用



有人可以帮助我解决以下问题吗?

我无法检索 ID 的值。

" ID "在我从iOS网络调用中发布时,一直是空的。

Swift 3用于网络呼叫:

var request = URLRequest(url: URL(string: "URL HERE")!)
        request.httpMethod = "POST"
        let postString = "id=2"
        request.httpBody = postString.data(using: .utf8)
        let task = URLSession.shared.dataTask(with: request) { data, response, error in
            guard let data = data, error == nil else {                                                 // check for fundamental networking error
                print("error=(error)")
                return
            }
            if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {           // check for http errors
                print("statusCode should be 200, but is (httpStatus.statusCode)")
                print("response = (response)")
            }
            let responseString = String(data: data, encoding: .utf8)
            print("responseString = (responseString)")
        }
        task.resume()

api.php php代码从服务器端检索值。

if($_SERVER["REQUEST_METHOD"] == "POST"){
    if(isset($_POST["id"]) == 0) {
        $id = isset($_POST["id"]);
    }
}

问题在PHP代码中。在第3行,如果issetFALSE,请将$id值设置为ID参数。您希望它是issetTRUE

将0更改为1。它只是一个小错字。

看来您可能已经遇到了isset有点错了。isset返回BOOL,无论变量是否具有值。因此,$id = isset($_POST["id"]);告诉您是否给出了ID,而不是值。如果您想要值drop isset

我能够使用以下代码检索值。

if($_SERVER["REQUEST_METHOD"] == "POST"){
    if(isset($_POST["id"]) == 0) {
        $arr = array_values($_POST);
        //print_r($arr);
        echo "Value is: ".$arr['0'];
    }
}

最新更新