程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Restful傳遞數組參數及注解年夜全

Restful傳遞數組參數及注解年夜全

編輯:關於JAVA

Restful傳遞數組參數及注解年夜全。本站提示廣大學習愛好者:(Restful傳遞數組參數及注解年夜全)文章只能為提供參考,不一定能成為您想要的結果。以下是Restful傳遞數組參數及注解年夜全正文


RESTful 一種軟件架構作風,設計作風而不是尺度,只是供給了一組設計准繩和束縛前提。它重要用於客戶端和辦事器交互類的軟件。基於這個作風設計的軟件可以更簡練,更有條理,更容易於完成緩存等機制。

須要傳遞數組參數的情形,假如是普通的form表單,可以直接界說參數類型為List<String>便可(不克不及界說為數組類型,不然只能獲得一個null)。

示例代碼以下:

@POST
@Path("/user" )
public Response createUser(@FormParam("username" ) String username,
      @FormParam( "keyword") List<String> keywords) {

文件上傳接口若何傳遞 數據 參數?

然則假如是上傳文件的接口,由於應用了 @FormDataParam 注解,則不克不及應用上述用法:

@POST
@Path("/upload" )
@Consumes(MediaType.MULTIPART_FORM_DATA )
public Response uploadFile(@FormDataParam ("filename" ) String filename,
      @FormDataParam( "file") InputStream uploadedInputStream,
      @FormDataParam( "file") FormDataContentDisposition fileDetail ,
      @FormDataParam( "keyword") final List<String> keywords) {

拜訪這個接口時會產生異常:

java.lang.IllegalArgumentException   : wrong number of arguments

可見應用 @FormDataParam 注解時,將參數類型界說成List<String>是不可的,可以界說成 List<FormDataBodyPart> ,從 FormDataBodyPart對象中可以獲得參數:

@POST
@Path("/upload" )
@Consumes(MediaType.MULTIPART_FORM_DATA )
public Response uploadFile(@FormDataParam("filename" ) String filename,
 @FormDataParam( "file") InputStream uploadedInputStream,
 @FormDataParam( "file") FormDataContentDisposition fileDetail ,
 @FormDataParam( "keyword") final List<FormDataBodyPart> keywordObjs ) {
   if (keywordObjs != null && ! keywordObjs.isEmpty()) {
 for (FormDataBodyPart keywordObj : keywordObjs) {
   String keyword = keywordObj.getValueAs(String.class);
   System. out.println( "症結字:" + keyword );
     }
   }

RESTful 注解年夜全

@GET、@POST、@PUT、@DELETE、@HEAD

   @GET、@POST、@PUT、@DELETE 和 @HEAD 均是 HTTP 要求辦法指導符正文。您可使用它們來綁定根資本或子資本內的 Java 辦法與 HTTP 要求辦法。HTTP GET 要求被映照到由 @GET 正文的辦法;HTTP POST 要求被映照到由 @POST 正文的辦法,以此類推。

@Conumes 和 @Produces

@Conumes正文代表的是一個資本可以接收的MIME類型。@Produces正文代表的是一個資本可以前往的MIME類型。

@Path

 @Path正文被用來描寫根資本、子資本辦法或子資本地位。value值可以包括文本字符、變量或具有定制正則表達式的變量。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved