问题描述
我正在尝试使用RestAssured创建多部分POST调用,但是我不知道如何在此获得任何边界。 我尝试了这段代码,但没有用。
given().contentType("multipart/form-data")
.config(config.multiPartConfig(multiPartConfig().defaultFileName(null).defaultBoundary("WebKitFormBoundary123")))
.multiPart("file",new File("src\test\resources\picture.png"),"image/png")
.multiPart("name","picture.png")
.multiPart("userId",1426373,"text/plain")
.log().all()
.when().post(URL).then().log().all().statusCode(200);
Request method: POST
Request URI: URL
Request params: <none>
Query params: <none>
Form params: <none>
Path params: <none>
Headers: Accept=application/json
Cookies: <none>
Multiparts: ------------
Content-disposition: form-data; name = file; filename = picture.png
Content-Type: image/png
src\test\resources\picture.png
------------
Content-disposition: form-data; name = name
Content-Type: text/plain
picture.png
------------
Content-disposition: form-data; name = userId
Content-Type: text/plain
1426373
想要的结果:
------WebKitFormBoundary123
Content-disposition: form-data; name="file"; filename="picture.png"
Content-Type: image/png
src\test\resources\picture.png
------WebKitFormBoundary123
Content-disposition: form-data; name="name"
picture.png
------WebKitFormBoundary123
Content-disposition: form-data; name="userId"
1426373
------WebKitFormBoundary123--
那么,如何以请求多部分形式获取 ------ WebKitFormBoundary123 ?
更新: 如果我使用这个:
contentType("multipart/form-data; boundary=--WebKitFormBoundary123")
我会得到这个,它看起来还是不一样,而且不起作用
Request method: POST
Request URI: URL
Request params: <none>
Query params: <none>
Form params: <none>
Path params: <none>
Headers: Accept=application/json; boundary=--WebKitFormBoundary123
Cookies: <none>
Multiparts: ------------
Content-disposition: form-data; boundary=--WebKitFormBoundary123; name = file; filename = picture.png
Content-Type: image/png
src\test\resources\picture.png
------------
Content-disposition: form-data; boundary=--WebKitFormBoundary123; name = name
Content-Type: text/plain
picture.png
------------
Content-disposition: form-data; boundary=--WebKitFormBoundary123; name = userId
Content-Type: text/plain
1426373
解决方法
您可以将其设置为内容类型的一部分
contentType("multipart/form-data; boundary=--MyBoundary")
,
我发现自动生成的边界正是我需要的,它没有显示在 Rest Assured 日志中,但已发送。