ios — PHP Wamp-сервер не получает параметры из запроса AlamoFire

Когда я получаю запрос от AlamoFire, скрипт в PHP не распознает параметр ни в переменной POST, GET, ни в переменной REQUEST.

Код в AlamoFire — это

let parameters: [String: AnyObject] =
["email" : email,
"password": password]

Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON)
.responseJSON { response in

print(response)

switch response.result {

case .Success: // Connection stablishedcase .Failure(let error): //  Connection not stablished
print(error)
self.showLoginError(Constants.connectionError)
}
}

И код в php:

$response = array();
header('Content-Type: application/json');
if (isset($_POST['email']) && isset($_POST['password'])) {
... stuff
}else{
$response["Failure"] = 1;
$response["message"] = "Required field(s) is missing";
echo json_encode($response);
}

Тогда ответом в AlamoFire всегда является JSON с сообщением обязательного поля

В какой-то момент PHP дал мне эту ошибку:
PHP устарел: автоматическое заполнение $ HTTP_RAW_POST_DATA устарело и будет удалено в следующей версии. Чтобы избежать этого предупреждения, установите «Always_populate_raw_post_data» на «-1» в php.ini и используйте вместо этого входной поток php: //. в Неизвестно в строке 0

Я должен был изменить php.ini с возможностью always_populate_raw_post_data -1 и достигни того состояния, которым я являюсь сейчас.

Но если URL запроса такой http://192.168.1.108:8080/labor/login.php?email=slicingit@yahoo.com&пароль = brown1234 сервер получает параметр. Также, если я создаю запрос, используя NSURLSession с параметрами как частью HTTP Body сервер получает их.

0

Решение

Откуда ты знаешь, что его не получают? Как узнать, отправляет ли alomfire его?
используйте ‘echo’, чтобы увидеть, что alomfire возвращает в ваш php-скрипт. если это действительно значения json, помните, что вы должны декодировать значения json, прежде чем сможете их использовать или назначать.Как декодировать JSON

 $mymail= ($_POST['email']);
$mypass= ($_POST['password']);
echo $mymail;
echo $mypass;

//Decode your json first here

if ($mymail && $mypass) {
... stuff
}else{
$response["Failure"] = 1;
$response["message"] = "Required field(s) is missing";
echo json_encode($response);

}

-1

Другие решения

Других решений пока нет …