Yii::$app->request->post();를 사용하여 iOS에서 데이터를 수신하고 수신된 데이터를 인쇄하면 값이 null로 표시됩니다. $_data = empty($_POST) ? json_decode(file_get_contents('php://input'), TRUE) : $_POST; ios에서 데이터를 수신하여 값을 얻을 수 있습니다. 데이터가 수신되지 않았습니다. 여기에 오류가 보고됩니다. 데이터 수신에 관해 안내 좀 부탁드립니다
Yii::$app->request->post();를 사용하여 iOS에서 데이터를 수신하고 수신된 데이터를 인쇄하면 값이 null로 표시됩니다. $_data = empty($_POST) ? json_decode(file_get_contents('php://input'), TRUE) : $_POST; ios에서 데이터를 수신하여 값을 얻을 수 있습니다. 데이터가 수신되지 않았습니다. 여기에 오류가 보고됩니다. 데이터 수신에 관해 안내 좀 부탁드립니다
IOS의 HTTP 요청 헤더를 확인하세요요청 헤더 설정에 문제가 있을 겁니다 저희 회사 iOS 아동화 요청 인터페이스에서는 이런 일이 발생하지 않습니다
iOS가 업로드할 때 json 형식이 지정되지 않았을 수 있습니다.
$_SERVER['CONTENT_TYPE']을 인쇄하여 application/json인지 확인할 수 있습니다.
그렇지 않다면 시도해 보세요
<code class="php">$_SERVER['CONTENT_TYPE'] = 'application/json'; Yii::$app->request->post();</code>
메시지 본문을 json 형식의 메시지로 직접 패키징하는 iOS에서 보낸 요청 패키지여야 합니다.
따라서 PHP 측은 메시지 본문을 가져오려면 file_get_contents('php://input')를 사용해야 합니다.
iOS 요청 헤더를 했었는데 요청 헤더가 설정되었는지 물어봤습니다
그리고 json 데이터를 추출하는 형식적인 방법은 다음과 같아야 합니다
$body = Yii::$app-> 요청-> ;getRawBody();
json_decode($body,true);
Yii2 프레임워크를 기반으로 API를 개발한 경우 다음과 같은 방법으로 데이터를 수신할 수 있습니다.
요청 방법 가져오기:
<code>$value = Yii::$app->request->get("参数名");</code>
게시물 요청 방법:
<code>$value = Yii::$app->request->post("参数名");</code>
클라이언트가 데이터를 전송할 때 Content-Type이 application/json인 경우 config.php 파일의 요청 섹션에서 다음을 구성해야 합니다.
<code>'request' => [ 'cookieValidationKey' => '5opbkVM6PYmVxcyNvHG1wK06fkIh0vYG', 'parsers' => [ 'application/json' => 'yii\web\JsonParser' ], ],</code>
이렇게 하면 json 형식으로 전달된 값을 성공적으로 가져올 수 있습니다.
클라이언트가 객체를 json으로 직렬화하여 전달하면 다음과 같이 객체를 받아 데이터베이스에 저장할 수 있습니다.
<code>$article = new Article(); $article->load(Yii::$app->getRequest()->getBodyParams(), ''); if (!$model->save()) { throw new ServerErrorHttpException('文章保存失败'); }</code>