異なる-FromBodyの以前のバージョンにバンドルネットコアモデルは、JSON形式に対応しなければなりません

オリジナル: 異なる-FromBody以前のバージョンとの結合NETコアモデルはJSON形式を対応している必要があります

7頭の牛は写真をアップロードのためのWebAPIのは、そこにある前のコールバックのURL(以前.net4.0と、通常の動作)

コードは以下の通りであります:

        // 七牛コールバック地址、CallbackBody内容名=アップロード/部材/ 1.JPG&ハッシュ= Fn6qeQi4VDLQ347NiRm-RlQx_4O2 
        パブリック オブジェクトポスト([FromBody] 動的データ)
        { 
            アイログロガー = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod()。 DeclaringType); 
            logger.Info(" データ:" + data.ToString());
            int型のステータス= - 1 ; 

            試す
            { 
                文字列 avator_url = data.name。
                int型 startPos = " アップロード/メンバー/ ".LENGTH;
                ストリング MEMBER_ID = avator_url.Substring(startPos、avator_url.IndexOf(" .JPG ") - startPos)。
                MemberHelper.UpdateAvator(MEMBER_ID、avator_url)。
                VaRの JSON = 新しい {結果= 新しい ストリング [ 0 ]、ステータス= 0 }。
                リターンJSON。

            } 
            キャッチ(例外例)
            { 
                文字列 MSG = ex.Message + ex.StackTrace。
                logger.Error(" \ rを\ n個のデータ:" + data.ToString()+" \ rをする\のnException:" + MSG、EX);
                VaRの JSON = 新しい {結果= 新しい ストリング [ 0 ]、ステータス=ステータス、MSG = MSG}。
                リターンJSON。

            } 


        }

サポートされていないメディアタイプ(サポートされていないメディアタイプ) - 今、.NETのコアで同じコードはHTTP 415エラーを求めています

https://www.cnblogs.com/CreateMyself/p/6246977.html:記事を参照してください

これは呼ば  フォームのPOSTでASP.NET MVC / WEBAPIかどうかボディ同時データは、私たちに返される要求JSONの形で、またはコントローラの形態はすべてのHTTPを結合する能力を持っているかどうか、私たちは特別な指示を行う必要はありません

七頭の牛コールバックURL形式が使用されるべきフォームPOST(の形で: " - WWW-form-urlencodedでアプリケーション/ X"のcontentType)。

 

.NETコアMVCモデルバインディング、デフォルトパラメータバインディングタイプはFromFormです

 

FromQuery、对应URL中的URLエンコード文字列( "?KEY1 = VALUE1 &キー2 =値2")。


FromForm、对应要求内容中的URLエンコード文字列( "KEY1 = VALUE1 &キー2 =値2")。


FromBody、对应要求内容の中の的のJSON文字列( "{" KEY1 ":"値1" 、 "KEY2": "値2"} ")。

.NETコアが厳しく制限され、  ポスト([FromBody]データ動的)この文言は、パラメータ・タイプに対応しなければならないJSON形式である(のcontentType:「アプリケーション/ JSONは」 )、 そうでない場合は415エラーが存在することになります  

我々は2つのメソッドを記述している行うことができ、7頭の牛との両方が、そのメソッドを呼び出すために、あなたは正確に取り戻すことができます。

 

        //七牛コールバック地址、CallbackBody内容名=アップロード/部材/ memberId.jpg &ハッシュ= Fn6qeQi4VDLQ347NiRm-RlQx_4O2 
        【のAllowAnonymous] 
        [HttpPost( "updateAvatorJSON")] 
        パブリックオブジェクト・ポスト([FromBody動的データ)
        { 
            int型のステータス= -1 ; 

            試す
            { 
                updateAvator(data.name)。
                VaRのJSON =新しい{結果= ""、ステータス= 0}。
                JSONを返します。

            } 
            キャッチ(例外例)
            { 
                文字列MSG = ex.Message + ex.StackTrace。
            } 
        }
                VaRのJSON =新しい{結果= ""、ステータス=ステータス、MSG = MSG}。
                JSONを返します。

        【のAllowAnonymous] 
        [HttpPost( "updateAvatorForm")] 
        パブリックオブジェクトポスト(文字列名、文字列ハッシュ)
        { 
            int型のステータス= -1。

            してみてください
            { 
                updateAvator(名); 
                VaRのJSON =新しい{結果= ""、ステータス= 0}。
                JSONを返します。

            } 
            キャッチ(例外例)
            { 
                文字列MSG = ex.Message + ex.StackTrace。
                VaRのJSON =新しい{結果= ""、ステータス=ステータス、MSG = MSG}。
                JSONを返します。

            } 
        }

 

 

**********ポストスクリプト----マイクロ文字のアプレットwx.requestは、再び*************同様の問題に遭遇しました

クライアント:

    wx.request({ 
      URL:URL、
      方法:' POST ' 
      ヘッダ:{ " コンテンツタイプ"" アプリケーション/ x-www-form-urlencodedで" } 
      データ:dataParam、
      成功:関数(RES){ 

      }} )

対応するサーバー側のコードは、[FromForm]に変更、またはのみ既定の.NETコアのQueryStringを見つけるので。データを取得するために失敗する必要があります

[HttpPost]
         公共 ダイナミックポスト(             
            [FromForm] CustomOrderNumber、
            [FromForm] int型得意先
        } {

-------------------------------------------------- -------------------------------------------------- -

「Content-Typeの」とのクライアントの場合:「アプリケーション/ JSON」は、サーバーが使用しなければならない[FromBody]

 

-------------------------------------------------- -------------------------------------------------- -

サーバ[FromForm]及び[FromBody]、APIインターフェイスを混合することができないか、ラージオブジェクトに、または他の引数がでのQueryStringを入れて作ること

        公共の ダイナミック・ポスト(            
             文字列CustomOrderNumber、
             int型のCustomerId、
            [FromBody] OrderItemDTO []の項目

 

おすすめ

転載: www.cnblogs.com/lonelyxmas/p/11125534.html