1

すべての引数が JSON を使用してエンコードされる HTTP RPC API があります。これは機能しますが、http 投稿の本文に MIME x-www-form-urlencoding と JSON を混在させるのは、実際にはあまりエレガントではありません。つまり、本体は次のようになります。

POST /my/rpc/api/endpoint

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

MIME をまったく使用せず、完全な json エンコーディングを使用するサービスを見てきました。例えば:

POST /my/rpc/api/endpoint

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

後者のソリューションの方がずっときれいに見えると思いますが、これが HTTP 規則に違反しているかどうか、またこれがどのような影響を与えるかはよくわかりません。これは避けるべきものですか?これにより、たとえばクライアントの実装が難しくなりますか?

4

2 に答える 2

0

x-www-form-urlencoded で渡されたデータは文字列として扱われます。そうは言っても、文字列を好きなように扱うことができます。JSON にエンコードおよびデコードする適切にフォーマットされた文字列があれば、それは問題なく機能します。投稿の本文を簡単に確認できる場合は、JSON 文字列を抽出するだけです。

PHP を使用すると、実際には本体の見方がわからないので、次のようにする必要があります。

json='{"foo":{"x":123,"y":true},"bar":[1,2,3,4,5,6,7]}'
//php
$json = json_decode($_POST['json']);
于 2012-07-11T19:57:41.377 に答える