【发布时间】:2014-04-23 16:23:59
【问题描述】:
我正在尝试使用基于 Grails 上的 JAX-RS 的 RESTful API 获取文件。该文件是从带有文件输入标签的常规 POST 多部分表单发送的。 (为了发送我使用邮递员谷歌扩展的文件)
但在发送请求后,我收到“HTTP 状态 400 - 错误请求”响应。 我检查了许多教程并完全按照他们的步骤操作,但它不起作用。
这是 REST 服务中处理请求的代码:
import com.sun.jersey.multipart.FormDataParam
import com.sun.jersey.core.header.FormDataContentDisposition;
import org.json.simple.JSONObject
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import javax.ws.rs.Consumes
import javax.ws.rs.FormParam
import javax.ws.rs.GET
import javax.ws.rs.POST
import javax.ws.rs.Path
import javax.ws.rs.PathParam
import javax.ws.rs.Produces
import javax.ws.rs.QueryParam
import javax.ws.rs.core.Context
import javax.ws.rs.core.Response;
import javax.ws.rs.core.MediaType
import javax.ws.rs.core.MultivaluedMap
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@Path('/api/upload/')
class UploadResource {
@POST
@Path("/tst")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces('application/json')
public String uploadFile(@FormDataParam("file") InputStream is, @FormDataParam("file") FormDataContentDisposition fileDetail){
String uploadedFileLocation = "Some Location";
// save it
saveToFile(is, uploadedFileLocation);
JSONObject JObject = new JSONObject();
JObject.put("Message", "Aha")
JObject.put("Response", "200")
JObject.put("Status", "OK")
return JObject.toJSONString()
}
}
这是我发送文件的方式:
【问题讨论】:
标签: java api grails upload jax-rs