POSTパラメータをサーバーコールにエンコードする最善の方法を考え出すのに問題があります。 PHPサーバーが提供するC#クライアントを作成しています。私はパラメータに大きな柔軟性を持たせたいので、私の現在の計画はJSONを使ってエンコードする単一のパラメータを持つことです。例えば:HTTP POSTパラメータ(C#クライアントからPHPサーバ)をエンコードする方法は?
params = {"object":"Main","function":"doecho","params":["echothis...."]}
私のC#WebRequestクラスオブジェクトとcontentType使用している "アプリケーション/ x-www-form-urlencodedでは、文字セット= UTF-8"。データがサーバーに到達し、データに不正なJSON文字を追加するまで、すべてが正常に機能します。
たとえば、次のデータを使用すると、サーバー側でjson_decodeを実行できません。サーバーは、私はの$ this - >のGetRequest()でそれを読んだときに自動的に二重引用符( ")に40%を回すように見える - >のgetParams();(Zend_Framework)
params = {"object":"Main","function":"doecho","params":["echothis%25%5d%22%40%3d%26...."]}
何が最善かここで練習しますか?base64でデータをエンコードする必要がありますか?コンテンツタイプやPHP設定に欠けていることがありますか?
私はクライアントとサーバーを完全にコントロールしています。
はい、これは私には意味があります。ありがとう! – Jeff
ニットピッキングはバグを防ぐことができるので、 "params"(しかし "="も)はURIエンコードされるべきであることに注意してください。私は、URIエンコードされた "params"がまだ "params"であることを知っているので、私はショートカットとしてではありませんが、 "prams"または "params"だったら、 –