>백엔드 개발 >PHP 튜토리얼 >내 cURL POST JSON 데이터가 PHP에서 비어 있는 것으로 해석되는 이유는 무엇입니까?

내 cURL POST JSON 데이터가 PHP에서 비어 있는 것으로 해석되는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-19 03:34:02573검색

Why is my cURL POST JSON data interpreted as empty in PHP?

cURL을 사용하여 PHP에 JSON 게시: 데이터 해석 관련 문제

휴식 PHP 프레임워크 내에서 cURL POST 명령을 실행하려는 시도 , 사용자가 게시된 데이터를 해석하는 데 어려움을 겪었습니다. 특히 POST 매개변수 -d가 예상대로 인식되지 않아 빈 배열이 발생했습니다.

문제 설명

사용자가 cURL 명령을 활용하려고 시도했습니다.

curl -i -X POST -d '{"screencast":{"subject":"tools"}}'  \         
http://localhost:3570/index.php/trainingServer/screencast.json

Windows(PHP 5.2)와 Linux(동일한 PHP 버전)에서 명령을 실행하더라도 POST 데이터 제대로 해석되지 않았습니다. 서버 응답은 아래와 같이 빈 "스크린캐스트" 배열을 나타냅니다.

{"screencast":{"id":null,"subject":null,"body":null,
         "dataUrl":null,"dataMedium":null,"createdOn":null,"author":null}}

솔루션

문제는 -d 매개변수가 지정하는 cURL의 기본 가정에서 발생합니다. 양식으로 인코딩된 데이터. 이 문제를 해결하려면 -H 매개변수를 사용하여 Content-Type을 JSON으로 지정해야 합니다.

curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json

이 수정으로 cURL은 게시된 JSON 데이터를 올바르게 해석했으며 POST 작업이 성공했습니다.

위 내용은 내 cURL POST JSON 데이터가 PHP에서 비어 있는 것으로 해석되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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