How to set boundary in RestAssured

Tags: ,



I’m trying to create multipart POST call using RestAssured, but I don’t know how to get any boundary there. I tried this code, but it doesn’t work.

given().contentType("multipart/form-data")
            .config(config.multiPartConfig(multiPartConfig().defaultFileName(null).defaultBoundary("WebKitFormBoundary123")))
            .multiPart("file", new File("srctestresourcespicture.png"), "image/png")
            .multiPart("name", "picture.png")
            .multiPart("userId", 1426373, "text/plain")
            .log().all()
            .when().post(URL).then().log().all().statusCode(200);

Log

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

            srctestresourcespicture.png
            ------------
            Content-Disposition: form-data; name = name
            Content-Type: text/plain

            picture.png             
            ------------
            Content-Disposition: form-data; name = userId
            Content-Type: text/plain

            1426373

Wanted result:

------WebKitFormBoundary123
Content-Disposition: form-data; name="file"; filename="picture.png"
Content-Type: image/png

srctestresourcespicture.png
------WebKitFormBoundary123
Content-Disposition: form-data; name="name"
                       
picture.png
------WebKitFormBoundary123
Content-Disposition: form-data; name="userId"

1426373
------WebKitFormBoundary123--

So, how do I get ——WebKitFormBoundary123 in the request multipart form?

UPDATE: If I use this:

contentType("multipart/form-data; boundary=--WebKitFormBoundary123")

I will get this, which still doesn’t look the same and it doesn’t work

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

        srctestresourcespicture.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

Answer

I found out that auto-generated boundary is what I need and it’s not displayed in Rest Assured log, but it’s sent.



Source: stackoverflow