Swift: URLRequest не очищает кеш

У меня есть простой файл службы PHP, настроенный с этим кодом:

<?php 

clearstatcache();


if ($_GET["method"] == "register") { 
    registerUser($_POST);
}

function registerUser($arrUser) { 

    $json = json_encode($arrUser);
    echo $json;


}

?>

и в моем приложении я звоню с этим кодом:

func postData(dictData:Dictionary<String, Any>, method:String) {

    //set up the request

    let myURL = URL(string:"http://www.xxxxxxxxx.com/cs_services.php?method=register")

        var myRequest = URLRequest(url:myURL!)

        //post data
        var strPostParams = " "
        for(key, value) in dictData {
            strPostParams = strPostParams + "\(key)=\(value)&"
        }

        myRequest.httpMethod = "POST"
        myRequest.httpBody = strPostParams.data(using: .utf8)
        myRequest.cachePolicy = .reloadIgnoringLocalAndRemoteCacheData

        let myDataTask = URLSession.shared.dataTask(with: myRequest) { (data, response, error) in

            if error != nil {
                print(error?.localizedDescription)
            }

            guard let data = data, let response = response  else {
                print("error with data or response")
                return
            }

            do {

                let jsonResponse = try JSONSerialization.jsonObject(with: data, options: .allowFragments)

                let strData = String(data: data, encoding: String.Encoding.utf8) as String!

                if let dictJSON = jsonResponse as? [String: Any] {
                    print("Dictionary:\(dictJSON)\n\(String(describing: strData))")
                } else {
                    print("JSON Response:\(jsonResponse)")
                }

            } catch {
                let strData = String(data: data, encoding: String.Encoding.utf8) as String!
                print("json error: \(error.localizedDescription)\n\(String(describing: strData))")
            }
        }

        myDataTask.resume()



}

Ранее я тестировал код и просто возвращал массив ("name" => "test") в файле PHP. Это сработало, так как я смог увидеть это возвращение в коде моего приложения. Но теперь, когда я изменил его, чтобы он возвращал данные POST, я все еще получаю имя = тестовый возврат.

Тестирование в браузере PHP файла выводит как положено. Я не уверен, что делать в приложении, хотя. У меня есть политика кэширования URLRequest, чтобы игнорировать локальный и удаленный. Я сбрасываю данные в симе. Перешли с тестирования iPad Air на iPad Air2 на привязанный iPad, те же результаты.

Любая помощь будет оценена.

1 ответ

Мел это до ошибки разработчика... Я указывал на старый файл.

Другие вопросы по тегам