2012-07-11 2 views
1

모든 인수가 JSON을 사용하여 인코딩되는 HTTP RPC API가 있습니다. 이 방법이 효과적이지만 사실 http post 본문에 MIME x-www-form-urlencoding과 JSON이 혼합되어있는 것은 너무 우아하지 않습니다. 나는. 몸은 다음과 같습니다 나는 전혀 MIME을 사용하여 전체 JSON 인코딩하지 않는 서비스를 보았다HTTP POST의 MIME 대 JSON 본문

POST /my/rpc/api/endpoint 

foo={"x":123,"y":true}&bar=[1,2,3,4,5,6,7] 

. 예컨대 :

POST /my/rpc/api/endpoint 

{"foo":{"x":123,"y":true},"bar":[1,2,3,4,5,6,7]} 

나는 그러나 나는 이것이이 것 HTTP 규칙과 어떤 영향을 위반하는 경우 매우 확실하지 않다, 후자의 솔루션이 훨씬 청소기 보인다 생각합니다. 이것은 피할 수있는 것이 있습니까? 이렇게하면 고객을 구현하는 것이 더 어려워 집니까?

답변

1

. 중요한 것은 "application/x-www-form-urlencoded"대신 "application/json"이라는 적절한 인터넷 미디어 유형을 사용하는 것입니다.

0

x-www-form-urlencoded와 함께 전달 된 데이터는 문자열로 처리됩니다. 즉, 문자열을 원하는대로 처리 할 수 ​​있습니다. JSON으로 인코딩하고 디코딩하는 올바른 형식의 문자열을 사용하면 완벽하게 작동합니다. 게시물 본문을 쉽게 볼 수 있다면 JSON 문자열을 추출하면됩니다. PHP를 사용하여

, 나는 실제로 몸을보고하는 방법을 잘 모르겠어요, 그래서 이런 식으로 뭔가를해야 할 것 :

에서 POST 페이로드에 JSON을 사용하여 아무 문제가 없습니다
json='{"foo":{"x":123,"y":true},"bar":[1,2,3,4,5,6,7]}' 
//php 
$json = json_decode($_POST['json']); 
관련 문제