게시 요청을 시뮬레이트하기 위해 restclient라는 firefox pluing을 사용하고 있습니다. 그것은 '모든 게시물 데이터를 데리러 것,하지만 제대로 서식을 경우 확실하지 않습니다.게시 요청에 대한 본문의 서식을 올바르게 지정하는 방법은 무엇입니까?
헤더 사용 : 콘텐츠 형식 : 응용 프로그램/JSON 몸 : { "ID": 1234}
만하지, 내 PHP에서 id 매개 변수를 따기 아니에요, 특별한 형식의 내가있다 설정해야합니까?
게시 요청을 시뮬레이트하기 위해 restclient라는 firefox pluing을 사용하고 있습니다. 그것은 '모든 게시물 데이터를 데리러 것,하지만 제대로 서식을 경우 확실하지 않습니다.게시 요청에 대한 본문의 서식을 올바르게 지정하는 방법은 무엇입니까?
헤더 사용 : 콘텐츠 형식 : 응용 프로그램/JSON 몸 : { "ID": 1234}
만하지, 내 PHP에서 id 매개 변수를 따기 아니에요, 특별한 형식의 내가있다 설정해야합니까?
좋아, 그것을 가지고 작업은, 여기에 어떤
이 콘텐츠 형식을 필요로한다 모두를 돕는다.
이 방법이 효과가있을 수는 있지만 실제로는 올바르지 않습니다. 콘텐츠에는 여러 유형이있을 수 없습니다. 이 경우에는 하나의 유형이며,이 경우'Content-Type : application/x-www-form-urlencoded'입니다. JSON은'{ 'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}'과 유사하게 보이고 헤더가'Content-Type : 응용 프로그램/json'. 분명히 이제 서버가 마지막 헤더를 선택합니다. 그러나 JSON이 아니기 때문에 오해의 소지가있는 것을 생략해도이 예제가 작동해야합니다. – Quasdunk
그래서 'param1 = value1 & param2 = value2'와 같은 URL 인코딩 된 키 - 값 쌍으로 작업 할 때 올바른 Content-Type은'application/x-www-form-urlencoded'이며'$ _POST'를 통해 액세스 할 수 있습니다. - 서버 측의 배열. '{key1 ':'value1 ','key2 ':'value2 ','key3 ':'value3 '}'와 같은 JSON 데이터가 있다면 content-type을'application/json'으로 설정하면 데이터를'$ data_array = json_decode (file_get_contents ('php : // input'), true)와 함께 서버 측의 배열에 저장한다. – Quasdunk
PHP는 자동으로 $_POST
수퍼 글로벌으로 JSON 본문을 구문 분석하지 않습니다. 이는 application/x-www-form-urlencoded
및 multipart/form-data
POST 본문에서만 발생합니다. 즉, 은 자신을 파싱 할 수 있습니다. php://input
pseudo-stream을 통해 원시 POST 본문에 액세스 할 수 있습니다. 에 대한
param1=value1¶m2=value2
감사 : 몸과 같이 당신의 PARAMS을 설정 한 후
Content-Type: application/json
Content-Type: application/x-www-form-urlencoded
과 :
좋아요, 추가되었습니다 콘텐츠 유형 : application/x-www-form- urlencoded, 아직도 안돼, 내가 다른 것을 놓치고 있습니까? 난 그냥 POST 요청을 시뮬레이션 싶어요. – Rob
예. 실제 본문 내용은 JSON입니다. 서버를 보내고있는 것에 대해 거짓말을하는 것만으로는 충분하지 않습니다. 실제적으로 본문을 ['application/x-www-form-urlencoded' 형식으로 인코딩해야합니다 (http://en.wikipedia.org/wiki/Application/x-www-form-urlencoded#The_application.2Fx- www-form-urlencoded_type), 또는 백엔드에서 JSON을 명시 적으로 처리해야합니다. – lanzz
이 맞는 것 같습니다. 문제는 아마 당신이 플러그인을 사용하는 방법입니다 – edwardmp
잘 PHP 코드에서 print_r ($ _ POST)하고 있어요 그리고 그것은 비어 있습니다. 누군가가 궁금해하는 경우를 대비하여 메소드를 "POST"로 설정했습니다. – Rob
이 게시물을 확인하십시오 : http://stackoverflow.com/questions/8893574/php-php-input-vs-post/8893792#8893792 – Quasdunk