curl로 PHP에 JSON을 게시하는 방법
나는 기초를 벗어 났을 지 모르지만이 오후 PHP 프레임 워크 자습서에서 curl post 명령 을 실행 하기 위해 오후 내내 노력하고 있습니다. 내가 이해하지 못하는 것은 PHP가 POST를 해석하는 방법이며 항상 빈 배열로 나타납니다.
curl -i -X POST -d '{"screencast":{"subject":"tools"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json
(이 슬래시는 바보처럼 보이지 않게하기 위해 PHP 5.2를 사용하여 Windows에서 실행했으며 Linux curl이있는 Linux 서버에서도 시도했습니다)
내가 잃어버린 것이 있어야합니다. 왜냐하면 매우 간단 해 보입니다. 게시물은 올바르게 해석되지 않습니다. 그렇다면 모든 것이 훌륭하게 작동합니다.
이것이 내가 얻는 것입니다.
HTTP / 1.1 409 충돌 날짜 : 2009 년 5 월 1 일 금요일 22:03:00 GMT 서버 : Apache / 2.2.8 (Win32) PHP / 5.2.6 X-Powered-By : PHP / 5.2.6 전송 인코딩 : 청크 내용 유형 : text / html; 문자셋 = iso-8859-1 { "screencast": { "id": null, "subject": null, "body": null, "dataUrl": null, "dataMedium": null, "createdOn": null, "author": null}}
$ _POST- 배열이 채워지지 않은 이유에 대한 요르단의 분석은 정확합니다. 그러나 사용할 수 있습니다
$data = file_get_contents("php://input");
http 본문을 검색하여 직접 처리하십시오. PHP 입력 / 출력 스트림을 참조하십시오 .
어쨌든 http multipart 양식 데이터를 처리하지 않기 때문에 프로토콜 관점에서 이것은 실제로 더 정확합니다. 또한 요청을 게시 할 때 application / json을 컨텐츠 유형으로 사용하십시오.
일반적으로 매개 변수 -d
는 양식 인코딩으로 해석됩니다. -H
매개 변수 가 필요합니다 .
curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json
PHP가 게시 된 데이터가 쿼리 문자열 형식 (key = value & key1 = value1)이 될 것으로 기대하기 때문에 빈 배열을 얻는다고 생각합니다.
컬 요청을 다음과 같이 변경하십시오.
curl -i -X POST -d 'json={"screencast":{"subject":"tools"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json
그것이 도움이되는지 확인하십시오.
curl이 데이터를 JSON으로 전송하도록 몇 가지 추가 플래그를 설정해야합니다.
명령
$ curl -H "Content-Type: application/json" \
-X POST \
-d '{"JSON": "HERE"}' \
http://localhost:3000/api/url
깃발
-H
: 사용자 정의 헤더, 다음 인수는 헤더 일 것으로 예상됩니다-X
: 사용자 정의 HTTP 동사, 다음 인수는 동사입니다-d
: HTTP POST 요청에서 다음 인수를 데이터로 보냅니다.
자원
다음과 같이 따옴표를 이스케이프해야합니다.
curl -i -X POST -d '{\"screencast\":{\"subject\":\"tools\"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json
참고 URL : https://stackoverflow.com/questions/813487/how-to-post-json-to-php-with-curl
'IT story' 카테고리의 다른 글
90 년대 초 HTML 양식은 어떻게 해석 되었습니까? (0) | 2020.08.05 |
---|---|
안드로이드 앱에서 홀로 다크 테마를 설정하는 방법은 무엇입니까? (0) | 2020.08.05 |
R-두 개의 데이터 프레임을 연결 하시겠습니까? (0) | 2020.08.05 |
'IList'vs 'ICollection'vs 'Collection'반환 (0) | 2020.08.05 |
jQuery에서 라디오 버튼의 이름이 모두 같을 때 어떻게 라디오 버튼의 값을 얻습니까? (0) | 2020.08.05 |