sourcecode

POST 데이터를 Postman과 함께 Raw JSON을 통해 전송

copyscript 2023. 1. 20. 16:16
반응형

POST 데이터를 Postman과 함께 Raw JSON을 통해 전송

Postman(Chrome에서는 열리지 않는 것)을 가지고 있으며, raw JSON을 사용하여 POST 요청을 하려고 합니다.

Body(본문) 탭에서 "raw(원시)"와 "JSON(애플리케이션/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
)

그럼 왜 우체국에서는 작동하지 않는 거죠?


포스트맨 스크린샷:

여기에 이미지 설명 입력

및 헤더:

여기에 이미지 설명 입력

이진 옆에 있는 드롭다운에서 raw를 클릭할 때 JSON 옵션을 선택하십시오.이거면 되겠군.

skill synon이 json을 우체부에게 전달하다

와는 달리jQuery생으로 읽으려면JSONPHP로 디코딩해야 합니다.

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'
});

meda의 답변은 완전히 적법하지만, 코드를 복사했을 때 오류가 발생했습니다!

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

입력했을 때"php://input"수동으로 코드를 입력했고, 작동했어요.알아내는 데 시간이 좀 걸렸어!

저도 같은 문제에 직면해 있었습니다.다음 코드가 효과가 있었습니다.

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

솔루션 1 양식 데이터를 사용하여 전송할 수 있습니다.

솔루션 2 raw json 데이터를 사용하여 전송할 수 있습니다.

두 솔루션 모두 완벽하게 작동하고 있습니다.

감사해요.

Postman 네이티브 앱 설치, Chrome 확장이 사용되지 않습니다. (내 것은 자체 창에서 열렸지만 Chrome 앱으로 실행되었습니다.)

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

반응형