繁体   English   中英

如何用Java放心上传文件

[英]How to upload a file in restassured with java

我们有一个API,它从系统中提取文件并显示在应用程序上,为此,我正尝试使用放心的Java和Java来实现自动化

我已经尝试过,将图像更改为二进制代码,然后将其添加为不起作用的参数。

Map<String, String> paramSample = new HashMap<>();
    paramSample.put("api_key", "A813302*************");
    paramSample.put("method", "my");
    paramSample.put("body", "{\n" +
            "  \"to\":\"91xxxxxxxx\",\n" +
            " \"type\": \"image\", \"image\" : {\"caption\" : \"{{caption}}\"},\n" +
            "\"callback\":\"{{callback}}\"\n" +
            "}");
    paramSample.put("from", "91xxxxxxx");
    paramSample.put("file","C:\\Users\\sobhit.s\\Pictures\\SMS-2047.png");
    RequestSpecification request = given();
    Response responseSample = request.params(paramSample).get(ExecutionConfig.BASE_URL).then().extract().response();
    String res=responseSample.prettyPrint();

回应是-

{
    "status": "xxxx",
    "message": "Invalid file format. Upload valid file."
}

首先,如果不确定,请在Postman中执行此操作,然后在代码中重新创建相同的内容。 这样,您将有一个邮递员来演示您的编码问题。

.queryParam()仅用于参数,而不用于主体内容。 .body()内容应位于.body()

使用.multiPart()将文件作为多部分任务上传。 希望这可以帮助。

given().queryParam(
            "api_key", "A813302*************", 
            "method", "my",
            "from", "91xxxxxxx")
            .body("{\n" +
            "  \"to\":\"91xxxxxxxx\",\n" +
            " \"type\": \"image\", \"image\" : {\"caption\" : \"{{caption}}\"},\n" +
            "\"callback\":\"{{callback}}\"\n" +
            "}")
            .multiPart(new File("C:/Users/sobhit.s/Pictures/SMS-2047.png"))
            .when()
            .get(ExecutionConfig.BASE_URL)
            .prettyPrint();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM