$ _POST не работает в веб-сервисах?

#php #ios #web-services #api #webservice-client

#php #iOS #веб-сервисы #API #веб-сервис-клиент

Вопрос:

Я застрял на 2 дня, я работаю с веб-сервисами, и эти веб-сервисы делают запрос из iOS , они отправляют запрос с помощью $_POST метода, но он не работает.

Я пытался, print_r($_POST) но он возвращает пустой Array() , а также попробовал с $_REQUEST , но его метод, Array() единственный GET , возвращающий пустой, работает должным образом.

Я также создаю <form> и пытаюсь отправить с помощью POST метода и распечатать оба, $_POST и $_REQUEST затем оба работают должным образом.

При печати $_SERVER['REQUEST_METHOD'] он возвращается GET .

Пожалуйста, ребята, кто-нибудь знает, как это происходит?

Комментарии:

1. Нет кода? Решения нет… Можете ли вы поделиться каким-нибудь релевантным кодом? 😉

2. Как вы ожидаете, что кто-нибудь поможет, если вы не публикуете свой код в вопросе? Подразумевается ли, что это игра в угадайку ?

3. Судя по вашему описанию, вы отправляете запрос не через POST или делаете что-то неправильно при отправке запроса, из-за чего он отправляется через GET. PHP не будет необъяснимым образом изменять входящий запрос POST на GET.

4. Я использую веб-сервисы, они отправляют запрос с устройства iOS. Я просто печатаю $_POST , и он вернет пустое значение

5. @apokryfos, я отправляю запрос от POSTMAN с помощью метода POST.

Ответ №1:

Здесь я могу найти свой ответ и проблему. For mod_rewrite — это метод запроса на изменение. Если у вас есть правило перезаписи, которое влияет на URL действия, вы не сможете прочитать переменную POST.

Вы должны добавить это правило в .htaccess в начале, чтобы избежать перезаписи URL:

RewriteRule ^login.php - [PT]

Ответ №2:

Во-первых, нам нужно будет просмотреть ваш код, чтобы иметь возможность полностью помочь вам. Ниже приведен небольшой пример того, как использовать формы в сочетании с PHP и $_POST .

 <?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    echo "<pre>";
    var_dump($_POST);
    echo "</pre>";
    exit;
}
?>

<!-- HTML -->
<form method="POST" action="<?= $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="element" />
    <button type="submit">Submit form</button>
</form>
  

Комментарии:

1. Здесь веб-сервис, а не форма.

2. Тот же принцип обработки, хотя вам нужно будет предоставить нам несколько примеров кода, чтобы мы могли помочь.

3. Я попробовал на вашем примере, он работает нормально… Я застрял с webservice bro