Android — PHP получает данные неправильно, когда я отправляю их с устройства IOS с использованием ионной

У меня есть проблема, я отправляю данные из моего ионного приложения, работающего на устройстве Android:

Данные отправляются из приложения на сервер

введите описание изображения здесь

Я получаю эти данные на моем PHP-бэкэнде так:

Данные, которые я получаю в бэкэнде php от устройства Android

введите описание изображения здесь

Эти данные отправлены и получены нормально, но у меня возникла проблема, когда я получаю те же данные с устройства ios, я получаю данные, как это:

Данные, которые я получаю в бэкэнде php с устройства ios

введите описание изображения здесь

У вас есть какие-либо решения этой проблемы? как я могу управлять этими данными? я могу преобразовать эти данные в другой формат, чтобы использовать его?

Спасибо 🙂

РЕДАКТИРОВАТЬ:

Код в моем ионном приложении:

 var camposRequeridos={IDVisita: this.reparto.IDVisita, Expedicion: this.albaranes}; //this.albaranes is an array with 1 or more objects

this.communicate.postRecogida(camposRequeridos);

Код в comunicate.ts

export class CommunicateProvider {
private defaultHeaders = {"Content-Type": "application/json"};

constructor(public http:HTTP,
private auth: AuthProvider) {
this.http.setDataSerializer('json');
}

get(URL, params, headers){
let signedHeaders = this.auth.signRequest(headers);
return this.http.get(URL, params, signedHeaders);
}

post(URL, params, headers){
let signedHeaders = this.auth.signRequest(headers);
return this.http.post(URL, params, signedHeaders);
}

postRecogida(camposRequeridos){
return this.http.post(SERVER_URL + '/Recogida', camposRequeridos, this.auth.signRequest(this.defaultHeaders));
}
}

В api-call.php в случае, если метод post:

case 'POST':
{
parse_str($var, $POST);
$_POST = array_merge((array)$_POST, (array)$POST);
break;
}

И в recogida.php я преобразую данные, если я получаю строку:

if(isset($_POST['Expedicion'])){
if(is_string($_POST['Expedicion'])){
$expediciones = json_decode($_POST['Expedicion'], true);
}else{
$expediciones = $_POST['Expedicion'];
}
}else{
$expediciones = array();
}

РЕДАКТИРОВАТЬ:

После долгих поисков я обнаружил, что это ионная ошибка или что-то в этом роде, потому что я пытаюсь собрать приложение снова в ios и на android, и проблема исчезает, но иногда появляется снова, когда я снова собираю приложение, я не знаю, почему это это происходит

-1

Решение

Чтобы дать лучший ответ относительно того, почему это происходит (и как «исправить это»), потребуется код, который генерирует эти данные.
Еще один вопрос, относящийся к правильному ответу, заключается в том, согласуются ли данные iOS (всегда одинаковая структура).

Тем не менее, то, что можно сделать, это простое управление / очистка данных;
Создайте функцию, которая обрабатывает данные, поступающие с устройств, и обеспечивает произвольную структуру данных, которая вам нужна.
Есть несколько способов сделать это, один из них — иметь шаблон структуры данных и рекурсивно искать значения в полученных данных. это будет работать, даже если структура данных изменится, но не будет, если ключи изменятся.
Я бы посоветовал сделать некоторые исследования, прежде чем отправлять вопрос.

0

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

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

По вопросам рекламы [email protected]