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, те же результаты.
Любая помощь будет оценена.