>백엔드 개발 >PHP 문제 >PHP가 ios 값을 수신할 수 없으면 어떻게 해야 합니까?

PHP가 ios 값을 수신할 수 없으면 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2022-10-26 10:21:201118검색

ios 값을 수신하지 않는 PHP에 대한 해결 방법: 1. afn을 "Content-Type"으로 설정합니다. 2. "$_POST"를 "json_decode(file_get_contents('php://input'), true)"로 변경합니다. 3. "manager.requestSerializer = [AFJSONRequestSerializer 직렬 변환기];".

PHP가 ios 값을 수신할 수 없으면 어떻게 해야 합니까?

이 튜토리얼의 운영 환경: macOS10.12.5 시스템, PHP 버전 8.1, macbook pro 2020 컴퓨터.

PHP가 iOS 값을 수신할 수 없으면 어떻게 해야 하나요? PHP가 iOS로부터 POST 요청을 받을 수 없나요?

주요 전제 ===》환경: mac 컴퓨터, mamp 통합 환경, webstorm 개발 도구, iOS는 xcode를 사용합니다.

문제 설명:

PHP는 iOS용 인터페이스를 작성합니다. GET 요청에는 문제가 없지만 PHP는 POST 요청으로 데이터를 가져올 수 없습니다.

1. 처음에는 MAMP 환경인 줄 알았습니다. , 또는 웹스톰 환경 등에 문제가 있어 검색 구성이 작동하지 않습니다.

2. 코드를 통해 문제를 찾아내거나, postman을 사용해 보거나, 제출 후 간단한 양식을 작성해 보면 올바른 게시물 본문 데이터를 명확하게 볼 수 있습니다. 그래서 iOS에 문제가 있는 것인지, 출력 데이터가 누락된 것이 아닐까 의심하여 ​​Charles Blue와 White Porcelain을 이용하여 패킷을 캡쳐한 결과 본체에 데이터가 있는 것을 발견하였습니다. PHP와 iOS에서는 문제가 없는 것 같습니다.

그런 다음 자세히 살펴보고 두 가지 해결책을 찾았습니다.

a iOS의 변경 사항: afn은 Content-Type을 설정합니다. 이는 항상 json 형식으로 데이터를 전송하는 것입니다. x-www-form-urlencoded의 경우 PHP 측에서 $_POST를 사용하면 정상적으로 데이터를 받을 수 있습니다. (나중에 이 방법이 작동하지 않는다는 것이 증명되었습니다...)

b, PHP 측에서 $_POST를 사용하는 대신 json_decode(file_get_contents('php://input'), 진실).

c 사실 afn이 관리자를 초기화할 때 그냥manager.requestSerializer = [AFJSONRequestSerializer serializer]를 제거하면 됩니다! ! ! ! !

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 PHP가 ios 값을 수신할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.