Home  >  Article  >  Backend Development  >  What should I do if php cannot receive the ios value?

What should I do if php cannot receive the ios value?

藏色散人
藏色散人Original
2022-10-26 10:21:201113browse

Solution to the problem that php cannot receive the ios value: 1. Set afn to "Content-Type"; 2. Change "$_POST" to "json_decode(file_get_contents('php://input') , true)"; 3. Delete "manager.requestSerializer = [AFJSONRequestSerializer serializer];".

What should I do if php cannot receive the ios value?

The operating environment of this tutorial: macOS10.12.5 system, PHP version 8.1, macbook pro 2020 computer.

What should I do if php cannot receive the ios value? PHP cannot receive the POST request sent by iOS?

Major premise===》Environment: mac computer, mamp integrated environment, webstorm development tool, iOS uses xcode.

Problem description:

PHP writes an interface for iOS. GET request is fine, but POST request cannot get the data.

Guidelines:

1 , At first I thought it was the mamp environment, or there was something wrong with the webstorm environment, and various search configurations didn't work.

2. Locate the problem through the code, try to use postman, or write a simple form post submission, and you can clearly see the correct post body data. Therefore, I suspected that there was a problem on the iOS side, and the output data might be missing, so I used Charles Blue and White Porcelain to capture the packet and found that the body had data. This is a question. There seems to be no problem on PHP and iOS.

Then I took a closer look and found two solutions:

a, iOS changes: afn sets Content-Type, application/json has been used, this is json If you want to transfer data in the format, change it to application/x-www-form-urlencoded, and use $_POST on the PHP side to receive the data normally. (It was later proven that this method did not work...)

b, instead of using $_POST on the PHP side, it is also possible to change it to json_decode(file_get_contents('php://input'), true).

c, in fact, when afn initializes the manager, remove manager.requestSerializer = [AFJSONRequestSerializer serializer]; and that’s it! ! ! ! !

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of What should I do if php cannot receive the ios value?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn