郵便配達送信要求、および受信背景

I.はじめに

郵便配達APIインタフェース・テスト・ツールを使用している場合、どのように使用するjson代わりに使用するのでは、それの値で文字列をx-www-form-urlencodedすることにより、すべての後に、タイプのkey-value伝統的な価値観は制限があります。私がテストしたい場合は一括挿入データのそれへのインタフェース、使用してx-www-form-urlencoded簡単にする方法は、このシナリオでは適用されません。

ですから、ここでは春の2つのノートから生じるん郵便配達ツールによって値でJSON文字列を使用して行う方法:

  • @RequestParam

  • @RequestBody

すべてのすべてでは、これら2つのパラメータは、同じ使用シナリオをバックグラウンドでノートを受け取ることはできませんが。

二、@ RequestParam

まず@RequestParamの利用シナリオを紹介:

注釈@RequestParamパラメータが受信されるrequestHeaderから、すなわち、要求ヘッダー一般的に使用されGET要求など、共通のURLなど、:HTTP:// localhostを:?8081 /ブート春学習/小説/ findByAuthorAndType著者は= 唐3つの少し&タイプは=ここで、終了したController図に示した以下の層が書き込ま:

 

 

@RequestParam 3つの設定パラメータがあります。

  • requiredデフォルトでは、かどうかを示す必要がありtrue、あなたがしなければなりません。

  • defaultValue デフォルトのパラメータは、要求に提供することができます。

  • value (キー値に対応する)パラメータを受け取るために名前を付けたURL。

コンテンツのContent-Typeを処理するための@RequestParamは、アプリケーション/ x-www-form-urlencodedでエンコード、このプロパティのコンテンツタイプのデフォルトです。

@RequestParamプロセスから使用されているContent-Typeapplication/x-www-form-urlencodedエンコードコンテンツので、郵便配達は、ボディタイプが選択されるx-www-form-urlencodedので、ヘッダが自動的であることになるContent-Typeapplication/x-www-form-urlencodedコードフォーマット。下図のように:

しかし、これはあなたが使用している場合、ああ、データ挿入のサポートバルクないjson値を渡すために文字列を、タイプが設定されているがapplication/json、送信をクリックし、その後、バックグラウンドの値を受信しない、文句を言うだろう、null

このとき、ノート@RequestBodyに便利です。見下すを続行↓

三、@ RequestBody

 

まず@RequestBody利用シナリオを紹介:

注釈@RequestBodyパラメータが受信されるrequestBodyから、すなわち、リクエストボディ通常、非処理するためのContent-Type: application/x-www-form-urlencoded次のような形式をエンコードするデータをapplication/jsonapplication/xmlデータの他のタイプ。

上のapplication/jsonデータの種類、あなたは、バックエンドへのすべてのJSONデータ内のバックエンドを注釈@RequestBody本体を使用し、解析することができます。

 

テーブルへのデータの挿入3.1バルク

例えば、データのバッチが挿入され、文言コントローラ層が下に示されています。

プロセスは@RequestBodyに用いることができるためContent-Typeであるapplication/json暗号化コンテンツ、郵便配達ので、ボディタイプが選択されるrow- > JSON(application/json)だから、Headers自動的になるContent-Typeapplication/jsonコードフォーマット。下に示すように、本体内のデータ:

批量向表中插入两条数据,这里的 saveBatchNovel()方法已经封装了 JPAsaveAll() 方法。body 里面的 json 语句的 key 值要与后端实体类的属性一一对应。

注意:前端使用$.ajax的话,一定要指定 contentType: "application/json;charset=utf-8;",默认为 application/x-www-form-urlencoded

3.2 后端解析json数据

上述示例是传递到实体类中的具体写法,那么如果传递到非实体类中,body里面的json数据需要怎么解析呢?我们再来看下面这个例子:

在body中,我们还是输入上面的json数据,根据分析,上面的json数据是一个List数组内嵌套着map对象,那么在后台的接收形式可写为 List<Map<String, String>>,具体代码如下图所示:

postman请求:

控制台输出:

得出结论,通过@RequestBody可以解析Body中json格式的数据。

 

四、总结

注解@RequestParam接收的参数是来自requestHeader中,即请求头通常用于GET请求,像POST、DELETE等其它类型的请求也可以使用。

注解@RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/jsonapplication/xml等类型的数据。通常用于接收POST、DELETE等类型的请求数据,GET类型也可以适用。

@requestBody一般是将多个参数封装为一个对象时使用。访问方式为application/json 一般为post

@requestParam实例: 访问方式可为form表单 一般为get

public AjaxResult getCouponCode(    @RequestParam(name = "userId", required = false, defaultValue = "-1") long userId)

当接口请求是application/JSON时,直接发Json.toJSONString(对象)

public RebateRuleDTO queryRebateRule(GetRebateRule rebateRule) {   
    return getObject(URLRebateConstant.URL_QUERY_REBATE_RULE, JSON.toJSONString(rebateRule),    
             RebateRuleDTO.class, "queryRebateRule");

 

 

 

おすすめ

転載: www.cnblogs.com/lvhouhou/p/11973762.html