`
yunzhu
  • 浏览: 1146132 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
B2b19957-cda7-3a9e-83a0-418743feb0ca
监控应用服务器
浏览量:110027
2e8be8be-e51f-346c-bcdd-12623c9aa820
Web前端开发
浏览量:119812
Bfa5df64-a623-34b9-85b8-ef3ce2aed758
经典异常的解决
浏览量:204676
社区版块
存档分类
最新评论
阅读更多

 

一般Rest接口如何传递数组参数?

需要传递数组参数的情况,如果是一般的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 );
          }
     }

 

 

0
4
分享到:
评论

相关推荐

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

    在RESTful API设计中,参数传递是至关重要的部分,特别是当需要传递数组参数时。RESTful风格的API通常基于HTTP协议,通过不同的HTTP方法(如GET、POST、PUT、DELETE)来执行不同的操作。本文将详细探讨如何在RESTful...

    httpclient和RestfuL风格上传下载文件

    在Java开发中,HTTPClient和RESTful风格的接口被广泛用于实现文件的上传与下载功能。HTTPClient是一个强大的HTTP客户端库,而RESTful是一种轻量级的、基于HTTP协议的软件架构风格,常用于构建Web服务。在分布式系统...

    一个RESTful的文件下载方法

    RESTful API不仅适用于传统的网页请求,还适用于文件上传与下载等场景。本文将深入探讨一个具体的RESTful文件下载方法,并详细分析其实现原理。 #### 二、方法描述 根据提供的代码片段,我们可以看到这是一个基于...

    【JavaScript源代码】vue 中 get delete 传递数组参数方法.docx

    在JavaScript和Vue.js开发中,与后端进行数据交互时,我们经常需要使用HTTP的GET和DELETE方法传递参数。然而,对于数组类型的参数,浏览器在处理URL时会将其转化为键值对的形式,如`name[]=1&name[]=2&name[]=3`,这...

    jersey 实现restful服务

    而Jersey则提供了这些接口的具体实现,为开发人员提供了一个强大的工具集。 首先,让我们了解RESTful服务的基本概念。RESTful服务的核心在于资源(Resources)和操作(Operations)。资源通常通过URI(统一资源...

    restful 接口开发规范(RESTfulAPIdesignguide)

    在开发RESTful接口时,我们需要遵循一定的设计规范来确保接口的一致性、可维护性和易用性。RESTful API(Representational State Transfer,也称为RESTful web服务)是一种提供互联网计算机系统间互操作性的方法。...

    构建 jersey+restful 所需JAR包

    在开发基于Java的RESTful Web服务时,Jersey是一个常用的实现框架。RESTful(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,主要基于HTTP协议,使得数据和功能以资源的形式通过统一...

    python开发,基于flask-restful 的中小型项目,restful风格API接口开发实例,以mongodb作为数据库

    python开发,基于flask-restful 的中小型项目,restful风格API接口开发实例,以mongodb作为数据库 python开发,基于flask-restful 的中小型项目,restful风格API接口开发实例,以mongodb作为数据库python开发,基于...

    巧用 Jersey RESTful WebService框架解决文件上传乱码

    3. 文件上传接口处理:使用Jersey提供的`@FormDataParam`注解接收文件,同时指定编码。例如,创建一个名为`uploadFile`的方法: ```java @POST @Path("/upload") @Consumes(MediaType.MULTIPART_FORM_DATA) ...

    spring4+myabtis3+jersey(restful风格的webservice)

    本项目基于Spring4、MyBatis3和Jersey构建了一个RESTful风格的Web服务框架,旨在提供高效、灵活且易于维护的API接口。RESTful架构是一种面向资源的Web服务设计风格,强调简洁、统一的接口,使得客户端与服务器之间的...

    C#多线程文件下载工具(访问restful形式接口)

    在本项目中,我们关注的是一个利用C#实现的多线程文件下载工具,该工具能够访问RESTful形式的接口进行文件下载。在深入探讨这个工具之前,我们需要了解几个关键概念。 首先,让我们谈谈“多线程”。多线程是指在...

    Python中Flask-RESTful编写API接口(小白入门)

    RESTful API是一种架构风格,遵循REST(Representational State Transfer,表述性状态转移)原则,用于Web服务开发。 在Flask-RESTful中,一个API通常由多个资源组成,每个资源代表特定的实体或概念,如用户、商品...

    restful接口文档模板

    - 说明请求的方式,此处为GET,表明是通过查询字符串传递参数。 - **请求参数** - 列出所有请求时必须携带的参数及其含义,包括: - **name**: 请求的项目名称,必填项,类型为字符串。 - **type**: 请求项目的...

    jersey实现restful简单实例

    Jersey通过提供一组JAX-RS(Java API for RESTful Web Services)实现,使得开发人员能够方便地创建和部署RESTful服务。 一、JAX-RS简介 JAX-RS是Java标准,定义了如何在Java应用中创建RESTful服务的API。它通过...

    patch_NC65restful接口_20180629_dingyh5.zip

    这里的"自带的rest文件检索"意味着NC65内部已经集成了对RESTful接口的支持,允许开发者直接利用这些接口进行数据交互。 使用NC65的RESTful接口与其他Web系统类似,关键在于理解并遵循RESTful接口的规范。首先,你...

    java jersey spring 集成 开发restful API 服务

    总结来说,Java Jersey与Spring的集成为开发RESTful API提供了一个强大而灵活的解决方案。通过使用这两种技术,开发者可以构建高效、易于维护的Web服务,返回JSON数据,满足现代Web应用的需求。这个资源对于想要学习...

    c c++实现http服务 c c++开发restful api服务

    1. **Socket编程**:C和C++中,socket接口提供了一种在进程间通信的方式,特别适合网络通信。你需要使用socket创建监听套接字,绑定到特定端口,然后开始接受客户端的连接请求。 2. **多线程或异步I/O**:为了处理...

    RESTful API接口通用完整规范_V1.doc

    REST它是一种使用URL来定位资源,使用HTTP请求描述操作的Web服务规范,本资源包含RESTful简介、设计原则、通用说明、规范细则、接口管理说明。

    浅谈java调用Restful API接口的方式

    Java调用Restful API接口是Java开发中非常重要的一部分,了解Java调用Restful API接口的方式可以帮助开发者更好地理解和使用相关技术。本文将详细介绍Java调用Restful API接口的方式,包括使用HttpURLConnection、...

    SpringBoot第 6 讲:SpringBoot+jersey跨域文件上传

    在本教程中,我们将深入探讨如何使用Spring Boot与Jersey实现跨域文件上传。Spring Boot以其简化Spring应用程序开发的特性而受到广泛欢迎,而Jersey是JAX-RS规范的一个实现,用于构建RESTful Web服务。当我们谈论...

Global site tag (gtag.js) - Google Analytics