フロントエンドがform-data方式/raw方式でpostリクエストを送信する違い
4339 ワード
POSTリクエスト@RequestParam:①処理(フロントエンド)Content-Type:アプリケーション/x-www-form-urlencodedまたはform-data符号化の内容②この注釈には2つの属性がある:value、required;valueは、入力する値のid名を指定し、requiredはパラメータがバインドされる必要があるかどうかを示すために使用されます.ここでHeadersではアプリケーション/jsonをContent-typeとして使用できません.そうしないと、バックグラウンドでもリクエストが受信されません.
form-data方式を採用して、Headersの中で空であるべきです.png
form-data方式を採用して、Headersの中で空の時報の間違いではありません.png
form-data方式でpostリクエストを送信する.png
Controlでのメソッド
@RequestBody 1この注記は、アプリケーション/x-www-form-urlencoded符号化されたコンテンツではなく、アプリケーション/json、アプリケーション/xmlなどを処理するためによく使用されます.フロントエンドにはraw方式が規定されており、@RequestBody受信パラメータを使用する必要があります.ここでHeadersではアプリケーション/jsonをContent-typeとする必要があることに注意してください.
postリクエストをraw方式で送信.png
次のコードを使用して、通常ブレークポイントにアクセスできます.
では、以降は@RequestBody Mapmapという形で@RequestParam@RequestBody@PathVariableなどのパラメータを使って注釈の詳細をバインドしていきます
form-data、x-www-form-urlencoded、raw、binaryタイプ
一:form-data
httpリクエストのmultipart/form-dataです.フォームのデータはメッセージとして処理され、ラベルを単位とし、区切り記号で区切られます.キー値ペアをアップロードすることも、ファイルをアップロードすることもできます.アップロードされたフィールドがファイルである場合、Content-Typeがファイルタイプを説明します.content-dispositionは、フィールドのいくつかの情報を説明するために使用されます.
boundary分離があるためmultipart/form-dataはファイルをアップロードしたり、キー値ペアをアップロードしたりすることができ、キー値ペアを採用しているので、複数のファイルをアップロードすることができます.
二:x-www-form-urlencoded
アプリケーション/x-www-from-urlencodedは、フォーム内のデータをキー値ペアに変換します.たとえば、name=leyangjun&age=28&work=meituan
三:raw
任意のフォーマットのテキストをアップロードすることができて、text、json、xml、htmlなどの各種のテキストのタイプ4をアップロードすることができます:binary
Content-Type:アプリケーション/octet-streamと同等で、バイナリデータのみをアップロードでき、通常はファイルをアップロードするために使用されますが、キー値がないため、一度に1つのファイルしかアップロードできません.
注意:
form-dataがx-www-form-urlencodedと異なる点は(multipart/form-data:ファイルなどのバイナリデータをアップロードすることも、フォームキー値ペアをアップロードすることもできますが、最後には情報に変換されます.x-www-form-urlencoded:キー値ペアのみアップロードでき、キー値ペアは間隔が分かれています.)
印刷要求ログ、フォーム、bodyの違い
After request [uri=/managerConfig/modifyConfigAboutAppUserLogin;payload=id=3®istGivenPrice=0.00&openRegistry=true&visibleItemNotLogin=false&defaultAppViewClassifyLevel=2]
After request [uri=/item/createItem;payload={"name":"???","pictureUrl":"https://saturn-titan.oss-cn-qingdao.aliyuncs.com/demo/item/1546513139886pB7G82X.jpeg","itemBrand":"","describe":"??","itemClassifyId":5,"packageType":"BULK","suplyUnit":"?","warningAmount":0,"tags":"","priceGroups":[{"name":"???","optionalPrice":"0","priceType":"FLOW","priceGroupId":1,"promotionOptionalPrice":"","promotionSwitch":false}],"specification":{"itemUnit":"?","limitedPerchase":999,"minExpectedProfitmargin":10,"maxExpectedProfitmargin":50,"salePrice":11,"status":"OFF_SALE","unitWeight":11,"basicUnit":"?"}}]
form-data方式を採用して、Headersの中で空であるべきです.png
form-data方式を採用して、Headersの中で空の時報の間違いではありません.png
form-data方式でpostリクエストを送信する.png
Controlでのメソッド
@RequestMapping(value = "/del", method = RequestMethod.POST)
public ResponseObj delete(@RequestParam String enterpriseId,
@RequestParam String operator,
@RequestParam String status) {
int i = enterpriseBaseMapper.deleteByPrimaryKey(enterpriseId);
if (i == 1)
return new ResponseObj(true, RetCode.SUCCESS);
return new ResponseObj(false, RetCode.FAIL);
}
@RequestBody 1この注記は、アプリケーション/x-www-form-urlencoded符号化されたコンテンツではなく、アプリケーション/json、アプリケーション/xmlなどを処理するためによく使用されます.フロントエンドにはraw方式が規定されており、@RequestBody受信パラメータを使用する必要があります.ここでHeadersではアプリケーション/jsonをContent-typeとする必要があることに注意してください.
postリクエストをraw方式で送信.png
次のコードを使用して、通常ブレークポイントにアクセスできます.
@RequestMapping(value = "/del", method = RequestMethod.POST)
public ResponseObj delete(/*@RequestParam String enterpriseId,
@RequestParam String operator,
@RequestParam String status*/
@RequestBody Map map) {
String enterpriseId = (String) map.get("enterpriseId");
String operator = (String) map.get("operator");
String status = (String) map.get("status");
int i = enterpriseBaseMapper.deleteByPrimaryKey(enterpriseId);
if (i == 1)
return new ResponseObj(true, RetCode.SUCCESS);
return new ResponseObj(false, RetCode.FAIL);
}
では、以降は@RequestBody Mapmapという形で@RequestParam@RequestBody@PathVariableなどのパラメータを使って注釈の詳細をバインドしていきます
form-data、x-www-form-urlencoded、raw、binaryタイプ
一:form-data
httpリクエストのmultipart/form-dataです.フォームのデータはメッセージとして処理され、ラベルを単位とし、区切り記号で区切られます.キー値ペアをアップロードすることも、ファイルをアップロードすることもできます.アップロードされたフィールドがファイルである場合、Content-Typeがファイルタイプを説明します.content-dispositionは、フィールドのいくつかの情報を説明するために使用されます.
boundary分離があるためmultipart/form-dataはファイルをアップロードしたり、キー値ペアをアップロードしたりすることができ、キー値ペアを採用しているので、複数のファイルをアップロードすることができます.
二:x-www-form-urlencoded
アプリケーション/x-www-from-urlencodedは、フォーム内のデータをキー値ペアに変換します.たとえば、name=leyangjun&age=28&work=meituan
三:raw
任意のフォーマットのテキストをアップロードすることができて、text、json、xml、htmlなどの各種のテキストのタイプ4をアップロードすることができます:binary
Content-Type:アプリケーション/octet-streamと同等で、バイナリデータのみをアップロードでき、通常はファイルをアップロードするために使用されますが、キー値がないため、一度に1つのファイルしかアップロードできません.
注意:
form-dataがx-www-form-urlencodedと異なる点は(multipart/form-data:ファイルなどのバイナリデータをアップロードすることも、フォームキー値ペアをアップロードすることもできますが、最後には情報に変換されます.x-www-form-urlencoded:キー値ペアのみアップロードでき、キー値ペアは間隔が分かれています.)
印刷要求ログ、フォーム、bodyの違い
After request [uri=/managerConfig/modifyConfigAboutAppUserLogin;payload=id=3®istGivenPrice=0.00&openRegistry=true&visibleItemNotLogin=false&defaultAppViewClassifyLevel=2]
After request [uri=/item/createItem;payload={"name":"???","pictureUrl":"https://saturn-titan.oss-cn-qingdao.aliyuncs.com/demo/item/1546513139886pB7G82X.jpeg","itemBrand":"","describe":"??","itemClassifyId":5,"packageType":"BULK","suplyUnit":"?","warningAmount":0,"tags":"","priceGroups":[{"name":"???","optionalPrice":"0","priceType":"FLOW","priceGroupId":1,"promotionOptionalPrice":"","promotionSwitch":false}],"specification":{"itemUnit":"?","limitedPerchase":999,"minExpectedProfitmargin":10,"maxExpectedProfitmargin":50,"salePrice":11,"status":"OFF_SALE","unitWeight":11,"basicUnit":"?"}}]