1

RESTful MVCアプリケーションに投稿するレガシーシステム(ColdFusionで記述)があり、投稿されたパラメーターにアクセスしようとしています。

application/x-www-form-urlencodedレガシーシステムでcontent-typeヘッダーを設定するようにアドバイスされました。これcontrollerContext.HttpContext.Request.Form.AllKeysは、投稿されたパラメーターが含まれていることを意味するはずですが、含まれていません。

他のStackOverflowの投稿では、読むことを提案してcontrollerContext.HttpContext.Request.InputStreamいますが、別の/より簡単な方法があるかどうか疑問に思いました。

4

1 に答える 1

1

リクエストのContent-Typeヘッダーをに設定するだけapplication/x-www-form-urlencodedでは不十分な場合があります。クライアントはこのコンテンツタイプも尊重する必要があります。つまり、POSTリクエストの本文は次のようになります。

param1=value1&param2=value2&param3=value3&...

これで、を使用して、または単にビューモデルを使用し、コントローラーアクションにこのビューモデルをパラメーターとして取得させることで、個々の値を取得できるようになりますRequest.Form["param1"]。そのため、リクエストからこれらのパラメーターを手動で取得する必要はありません。

クライアントが仕様を尊重しない場合、唯一のチャンスはRequest.InputStreamそれを手動で読み取って解析することです。

于 2013-02-19T11:17:37.230 に答える