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
원시 읽기 와 달리 JSON
PHP에서 디코딩해야합니다.
print_r(json_decode(file_get_contents("php://input"), true));
php://input
요청 본문에서 원시 데이터를 읽을 수있는 읽기 전용 스트림입니다.
$_POST
양식 변수이므로 다음을 사용 하여 form
라디오 버튼 으로 전환해야 postman
합니다.
foo=bar&foo2=bar2
원시 게시하려면 json
로 jquery
:
$.ajax({
"url": "/rest/index.php",
'data': JSON.stringify({foo:'bar'}),
'type': 'POST',
'contentType': 'application/json'
});
바이너리 옆의 드롭 다운에서 JSON 옵션을 확인하십시오. raw를 클릭하면 해야 할 일
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
'Development Tip' 카테고리의 다른 글
Python을 사용한 고급 PDF 구문 분석 (표없이 텍스트 추출 등) : 최고의 라이브러리는 무엇입니까? (0) | 2020.10.10 |
---|---|
타임 스탬프가있는 이벤트 일치 오류 : 일치하는 요소를 찾지 못했습니다. (0) | 2020.10.10 |
@IBInspectable with enum? (0) | 2020.10.10 |
다른 컴파일러에 의해 호출되는 다른 캐스트 연산자 (0) | 2020.10.10 |
C ++에서 int를 enum으로 캐스트하는 일반적인 방법 (0) | 2020.10.10 |