Alamofire: параметры не передаются на сервер - PullRequest
0 голосов
/ 29 сентября 2018

Я впервые пытаюсь использовать Alamofire, поэтому, пожалуйста, прости меня, если это явный недосмотр!Я прочитал много других ответов и сделал много изменений, но, похоже, ничего не работает.

Я пытаюсь провести действительно простой тест, когда параметр передается из приложения iOS всервер, который проверяет, равно ли оно «Test», и, если да, возвращает некоторые данные json обратно в приложение iOS.

Хотя метод debugPrint выводит SUCCESS, данные json, распечатанные приложением iOS, всегда имеют значение «»Не установлено ", подразумевая, что параметры на самом деле не были переданы в файл php.Мне было интересно, может ли кто-нибудь помочь мне!

В данный момент я не слишком обеспокоен разбором json, а просто пытаюсь выяснить причину потери параметра!Заранее спасибо.

Вот мой PHP:

<?php  
    $name = $_POST["name"];

    if (isset($name))
      {
        if($name == "Test"){
          echo json_encode("Correct");
        }
        else
        {
         echo json_encode("Incorrect");
        }
    }else{
        echo json_encode("Not set");
    }
?>

А вот мой быстрый код:

let url = "http://mywebsite.com/xxx.php"

let parameters: [String:String] = ["name":"Test"]

Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON{ response in

    debugPrint(response)

    if let JSON = response.result.value {
        print("JSON: \(JSON)") 
    }
    else {
        print(response.result.error!)
    }
}

1 Ответ

0 голосов
/ 29 сентября 2018

Измените URLEncoding.default на JSONEncoding.default.

При установке кодировки на URLEncoding.default параметры будут передаваться через строку запроса.
(т. Е. http://mywebsite.com/xxx.php?name=test).

Также измените $POST_ на $_POST

...