2017-09-26 10 views
1

私はポストリクエストをキャプチャするためにasp.net MVC Webアプリケーションをセットアップしました。私は何の情報が通っているかを見るためにブレークポイントを設定しました。インタラクティブボタンをクリックすると、ブレークポイントにヒットしますが、オブジェクトには詳細がありません。 valueにカーソルを合わせると{Object}と表示されます。 Postmanを使用して生のJSON本体を送信すると、JSONが表示されます。送信されるスラックオブジェクトをどのように処理すると思いますか?インタラクティブメッセージスラックについては処理ポストリクエストスラックから

public void Post(object value) 
{ 
    // breakpoint here 
} 
+0

POSTリクエストを読み込んでJSONをデコードする実際のコードを提供してください。これはちょうど空の関数です。 –

+0

@ErikKalkokenおそらく私はそれをうまく表現していませんが、オブジェクトを解析する方法を探しています。私の最後にはJSONとして表示されません。私はオブジェクトをキャストすることができるクラスはありますか? – Master

+0

私の拡張答えをご覧ください。 –

答えて

2

は、体内で​​と呼ばれる単一のフォーム・データエンコードされたパラメータを使用して、標準のPOSTリクエストを送信します。このパラメータには、実際のリクエストのデータがJSON文字列として格納されます。

は、次のパラメータを使用してポストマンでこれをシミュレートすることができます:

  • 要求タイプ:POST
  • ヘッダー:Content-Type: application/x-www-form-urlencoded
  • 本体:form-datakey =​​とvalue = JSON文字列を持ちます。

したがって、bodyは完全にJSONではありませんが、JSONでエンコードされた文字列を含むフォームパラメータが含まれています。それに応じてあなたのアプリケーションを変更する場合、それは動作します。 C#で

あなたは(this answerまたは詳細)Request["payload"]で​​パラメータのコンテンツにアクセスすることができます。

それでもJSON文字列をオブジェクトにデコードする必要があります。簡単な方法は、JavaScriptSerializer.Deserializeを使用することです。 (詳細および代替アプローチについては、this answerを参照)。

+0

こんにちはErik、これらの投稿要求を受け入れるためにどのようなアプリケーションを作成しましたか? asp.net mvcも同様に?私は試してみましたが、私はこのhttps://imgur.com/a/ri6Wg – Master

+0

を提示しています。その方法がうまくいかない場合、c# –

+0

でPOSTリクエストを取得する方法に関する別のアプローチに関するリンクされた答えを確認してくださいね。あなたはこれを.netコアで果たしましたか?フレームワーク4.6を使用すると、それはRequest ["payload"]ではうまく動作しますが、.netコアのための解決策ではありません。 – Master

関連する問題