Restful传递数组参数及注解大全_java

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值可以包含文本字符、变量或具有定制正则表达式的变量。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索restful参数传递
, restful数组参数
restful注解
restful 数组参数传递、restful 参数注解、restful参数传递、restful 传递多个参数、restful list参数传递,以便于您获取更多的相关知识。

时间: 2024-10-22 00:55:31

Restful传递数组参数及注解大全_java的相关文章

jquery ajax 向后台传递数组参数示例

在JS中向后台传递数组参数,如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],具体的原因及解决方法如下,有类似问题的朋友可以参考下   需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型(对象.基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],原因如下: 在后台接收的时候,只能用request来接收,request.getParameterValues()方法

oracle11g-C#向Oracle存储过程传递数组参数

问题描述 C#向Oracle存储过程传递数组参数 自定义类型:create or replace TYPE COL AS VARRAY(100) OF varchar2(100); 存储过程:create or replacePROCEDURE CreateModelTable(tableName VARCHAR2colName COLcolType COLsqlflag OUT VARCHAR2) C#传参语句: OracleParameter pColName = new OraclePar

方法-vb与matlab的混合编程传递数组参数的问题

问题描述 vb与matlab的混合编程传递数组参数的问题 如题,在传递数组参数的时候报错,网上也有一些关于参数的提问,传回的数组参数只有一个数,这里有一篇百度的文章解决的方法已经算是解决了,但是看了一下,它使用的函数在vs2012中没有,如 Call mtInitM Dim tmp1,tmp2 As Long ′创建矩阵句柄 tmp1=mtCreateDoubleMatrix(1,n,0) tmp2=mtCreateDoubleMatrix(1,1,0) 上面的 mtInitM mtCreate

sap-java调用SAP的RFC如何传递数组参数

问题描述 java调用SAP的RFC如何传递数组参数 SAP是服务端,使用JCO3的jia包,RFC服务端的函数有一个数组类型的参数. java代码这边用什么形式给它传值.新手请赐教 解决方案 Java中连接SAP进行RFC调用JAVA本地方法调用(2)数组参数传递java调用SAP RFC函数

jquery ajax 向后台传递数组参数示例_AJAX相关

需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型(对象.基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],原因如下: 在后台接收的时候,只能用request来接收,request.getParameterValues()方法返回的是一个String[],所以,应该是在前台传输的时候调用了对象的toString()方法,那么如果依然想传递对象怎么办?凉拌! 但是可以使用JSON字符串来实现,在后台把JSO

jQuery中通过ajax调用webservice传递数组参数的问题实例详解_jquery

下面通过实例给大家说明比较直观些,更方便大家了解. 本人的项目中通过jquery.ajax调用webservice. 客户端代码如下: $.ajax({ url: "test/xxx.asmx", type: 'POST', dataType: 'xml', timeout: , data: { name: "zhangsan", tags: ["aa", "bb", "cc"] }, error: fun

C#调用存储过程传递数组参数的问题

问题描述 存储过程在plsql下调试没问题.但是c#执行就报参数或类型不对,麻烦各位帮检查一下.存储过程代码CREATEORREPLACETYPEARR_IDSISTABLEOFNUMBER;CREATEORREPLACEPROCEDUREGET_TESTS(P_IDSINARR_IDS)ASV_IDSARR_IDS:=ARR_IDS();BEGINV_IDS.EXTEND(P_IDS.COUNT);FORiINP_IDS.FIRST..P_IDS.LASTLOOPV_IDS(i):=P_IDS

java-使用http post如何传递多参数到restful web服务?

问题描述 使用http post如何传递多参数到restful web服务? 我创建了俩个数组参数和Objects数组,我想传递它们,我可以用下面的方法吗? @POST @Path("Test3") @Produces("text/plain") @Consumes({"application/json"}) public String Test3(String[] id1,String[] id2 ,Object [] oo) { String

C++中通过模板向函数传递数组长度

我们知道,在C/C++中,向一个函数传递数组时,实际上传送的是这个数组的首地址,也即是一个指针类型.所以,在函数中,我们没有办法知道这个传递进来的数组的长度到底为多长,一个普遍的方法就是再增加一个参数,来记录传递进来的数组的长度. 不过在C++中,使用模板机制,可以很好地解决这个问题,如下面的代码所示: #include <iostream> using namespace std; template<class T, int N> void array(T (&param