이 글의 내용은 PHP 학습 노트와 포스트 업로드 주의 사항입니다. 이제 모든 사람과 공유합니다. 필요한 친구들이 참고할 수 있습니다.
오늘은 원래 포스트맨을 사용하여 POST를 시뮬레이션하고 업로드하려고 했습니다. Json 집합 데이터가 서버로 전송되지만 서버가 업로드된 데이터를 수락할 수 없는 것으로 나타났습니다.
서버 코드:
<?php echo "<pre class="brush:php;toolbar:false">"; var_dump($_POST); var_dump($_REQUEST); echo ""; ?>
PostMan 코드:
POST /api.php/API/fish_woter_monitoring_add HTTP/1.1 Host: shrimp.cqjufy.com Content-Type: application/json Cache-Control: no-cache Postman-Token: 356cd424-c710-2d33-ffa7-29157f939c56 {"SensorData": [{"equipment_ID": "20180418","PH_value": "7.28","oxygen_value": "5.03","temperature_value": "21.4"}]}
서버는 데이터를 전혀 수신하지 않는 것으로 나타났습니다.
Baidu 이후 모든 사람들은 php://input을 사용하여 읽기를 권장합니다
file_get_contents('php://input')
또한 $GLOBALS['HTTP_RAW_POST_DATA']를 사용하여 POST 원시 데이터를 얻을 수도 있지만 공식적인 권장 사항은 대신 php://input을 사용하는 것입니다. ;
$GLOBALS['HTTP_RAW_POST_DATA']
세 가지 차이점:
$_POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
1.적용하려면 php.ini의 always_populate_raw_post_data
값을 On으로 설정해야 적용됩니다
2.php://와 비교 입력하면 더 많은 메모리가 필요합니다.
enctype="multipart/form-data"
에는 사용할 수 없습니다.
1.text/xml, application/json 등과 같은 비application/x-www.form-urlencoded 데이터 유형의 콘텐츠를 구문 분석할 수 없습니다.
2.enctype="text/plain"을 사용할 수 없는 것으로 확인되었습니다.
3.HTTP POST 요청의 Content-Type이 application인 경우. /x-www-form-urlencoded 또는 multipart/form-data , 변수는 연관 배열 형태로 현재 스크립트에 전달됩니다.
관련 추천:
위 내용은 PHP 학습노트 업로드 후 주의사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!