>  기사  >  백엔드 개발  >  yii2 프레임워크의 인터페이스를 통해 iOS 측에서 데이터 수신에 대해

yii2 프레임워크의 인터페이스를 통해 iOS 측에서 데이터 수신에 대해

WBOY
WBOY원래의
2016-08-31 08:54:551395검색

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