Java 如何使用多部分表单数据编写Restfuse HttpTest? 我想不出,如何编写其余的测试。请帮帮我。
我有一项服务:Java 如何使用多部分表单数据编写Restfuse HttpTest? 我想不出,如何编写其余的测试。请帮帮我。,java,rest,junit,Java,Rest,Junit,我有一项服务: @POST @Path("/insertDataInDB") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response insertDataInDB(@FormDataParam("inputfile") MultipartFormDataInput inputfile) { do Stuff } 服务正常,我用Chromes Rest控制台进行了测试 请求URI: http://localhost:8080/
@POST
@Path("/insertDataInDB")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response insertDataInDB(@FormDataParam("inputfile")
MultipartFormDataInput inputfile) {
do Stuff
}
服务正常,我用Chromes Rest控制台进行了测试 请求URI:
http://localhost:8080/persDB/rest/r/insertDataInDB
内容类型:
multipart/form-data
附件文件:
Test.xlsx
参数键:
inputfile
Rest测试看起来怎么样?我试过这个
但是我不太清楚,参数键应该放在哪里等等 我得到一个java.io.IOException:
2014-02-04 16:01:30,825 [http-/0.0.0.0:8080-2] SEVERE org.jboss.resteasy.core.SynchronousDispatcher - Failed executing POST r/insertDataInDB: org.jboss.resteasy.spi.ReaderException: java.io.IOException: Unable to get boundary for multipart
看看这个答案和完整的解释 您需要将此标题添加到您的请求中:
Accept-Encoding:multipart/form-data
问题是,当您设置“Content Type=multipart/form data”而没有边界时,服务器无法正确读取表单数据 rest服务器需要如下内容: 内容类型=多部分/表单数据;边界=我的自定义边界 或 内容类型=多部分/表单数据;边界=------------------------------------2894775802929299
如果您想了解更多关于边界的信息,可以看到以下链接:[无法使用@HttpTest进行测试,尚未实现“Accept Encoding请求标头字段类似于Accept,但限制响应中可接受的内容编码(第3.5节)。”例外情况很清楚。。。“java.io.IOException:无法获取多部分的边界”这是因为他们在请求中使用“Content Type:multipart/form data”,而没有设置边界参数。
Accept-Encoding:multipart/form-data