我的控制器方法是这样的
public static void addItem(byte[] xmlFile) {
... //process file
}
和我的ApplicationTest文件
@Test
public void addItem() {
Request request = newRequest();
request.url = "/item";
request.encoding = APPLICATION_X_WWW_FORM_URLENCODED;
request.body = new ByteArrayInputStream(xmlFileBytes)
Response response = POST(request, "/item")
.....
}
当我运行这个时,我得到了例外......有根本原因 不支持的编码:application / x-www-form-urlencoded
如何解决这个问题......
答案 0 :(得分:1)
我想这是另一个不了解API的案例.... :)
FunctionalTest提供了一个POST方法,可以使用字符串键提交文件映射...
POST(java.lang.Object url, Map<String,String> parameters,Map<String,File> files)
Sends a POST request to the application under tests as a multipart form. Designed for file upload testing.
我的解决方案......
Request request = newRequest();
request.url = "/item";
Map<String, String> paramMap = Maps.newHashMap();
Map<String, File> fileMap = new HashMap<String, File>();
fileMap.put("xmlFile", new File("test/item.xml);
Response response = POST("/item", paramMap, fileMap);
assertIsOk(response)
答案 1 :(得分:0)
我处理这个的常用方法是在窗体上使用“multipart / form-data”,在控制器上使用File参数。据我所知,这也是记录在案的方式......