Development Tip

Postman과 함께 원시 JSON을 통해 POST 데이터 보내기

yourdevel 2020. 10. 10. 12:06
반응형

Postman과 함께 원시 JSON을 통해 POST 데이터 보내기


나는 Postman (Chrome에서 열리지 않는)을 가지고 있으며 원시 json을 사용하여 POST 요청을 수행하려고합니다.

본문 탭에서 "원시"를 선택하고 다음 본문과 함께 "JSON (application / json)"을 선택했습니다.

{
    "foo": "bar"
}

헤더에는 1이 있습니다. Content-Type: application/json

PHP 측에서는 지금 막하고 print_r($_POST);있는데 빈 배열이 생겼습니다.


jQuery를 사용하고 다음을 수행하는 경우 :

$.ajax({
    "type": "POST",
    "url": "/rest/index.php",
    "data": {
        "foo": "bar"
    }
}).done(function (d) {
    console.log(d);
});

예상대로 얻고 있습니다.

Array
(
    [foo] => bar
)

그렇다면 Postman과 함께 작동하지 않는 이유는 무엇입니까?


Postman 스크린 샷 :

여기에 이미지 설명 입력

및 헤더 :

여기에 이미지 설명 입력


jQuery원시 읽기 와 달리 JSONPHP에서 디코딩해야합니다.

print_r(json_decode(file_get_contents("php://input"), true));

php://input 요청 본문에서 원시 데이터를 읽을 수있는 읽기 전용 스트림입니다.

$_POST양식 변수이므로 다음을 사용 하여 form라디오 버튼 으로 전환해야 postman합니다.

foo=bar&foo2=bar2

원시 게시하려면 jsonjquery:

$.ajax({
    "url": "/rest/index.php",
    'data': JSON.stringify({foo:'bar'}),
    'type': 'POST',
    'contentType': 'application/json'
});

바이너리 옆의 드롭 다운에서 JSON 옵션을 확인하십시오. raw를 클릭하면 해야 할 일

Skill synon은 json을 우편 배달부에게 전달합니다.


meda의 대답은 완전히 합법적이지만 코드를 복사하면 오류가 발생했습니다!

어딘가에 "php://input"잘못된 문자가 있습니다 (따옴표 중 하나 일 수 있습니까?).

"php://input"수동으로 코드를 입력했을 때 작동했습니다. 알아내는 데 시간이 걸렸습니다!


나는 같은 문제에 직면하고 있었고 다음 코드가 나를 위해 일했습니다.

$params = (array) json_decode(file_get_contents('php://input'), TRUE);
print_r($params);


Postman 기본 앱을 설치하세요. Chrome 확장 프로그램은 더 이상 사용되지 않습니다. (내 창이 자체 창에서 열렸지만 여전히 Chrome 앱으로 실행 됨)

참고 URL : https://stackoverflow.com/questions/39008071/send-post-data-via-raw-json-with-postman

반응형