programing

PHP의 JSON POST에서 HTTP 요청 본문을 읽는 동안 문제가 발생했습니다.

shortcode 2023. 2. 23. 23:38
반응형

PHP의 JSON POST에서 HTTP 요청 본문을 읽는 동안 문제가 발생했습니다.

웹 훅의 엔드 포인트로 등록된 스크립트를 쓰고 있습니다.모든 요청의 헤더를 서버 로그에 기록하기 때문에 정상적으로 등록되었음을 알 수 있습니다.다음은 샘플입니다.

Content-Type: text/xml; charset=UTF-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: =={obfuscated}== 
Content-Length: 1918

제가 등록한 API는 JSON 오브젝트를 스크립트에 POST하고 있으며, PHP를 사용하여 해당 오브젝트를 해석하고 싶습니다.요청 헤더에서 알 수 있듯이 구문 분석 대기 중인 크고 두꺼운 JSON 개체가 있습니다.간단해 보이지만, 그렇지 않아요.

처음에 나는 그것을 사용하려고 했다.$_POST['json']아니면 그냥$_POST데이터가 배열되어 있지 않아서 어떻게 접근해야 할지 잘 모르겠더라고요.

사용해보았습니다.file_get_contents('php://input')그리고.fopen('php://input', 'r')있든 없든json_decode()운이 없더군사용할 수 없습니다http_get_request_body()PECL이 설정되어 있지 않기 때문에 제어할 수 없습니다.

POST-ed JSON 오브젝트와 상호작용할 수 있는 다른 방법이 있습니까?감사합니다!

알고 보니 난 그저 내가 원하는 게

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); //convert JSON into array

여기서 두 번째 파라미터는json_decode개체를 배열로 반환했습니다.

다음 사항이 통할 때에도.

$inputJSON = file_get_contents('php://input');

$_POST를 계속 사용하려면 데이터를 FormData로 전송합니다.

var fd = new FormData();
fd.append('key', 'value');
return axios.post('url', fd)

언급URL : https://stackoverflow.com/questions/7047870/issue-reading-http-request-body-from-a-json-post-in-php

반응형