如何用Java放心上传文件

时间:2019-02-18 11:18:19

标签: java rest-assured

我们有一个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."
}

1 个答案:

答案 0 :(得分:1)

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

.queryParam()仅用于参数,而不用于正文。正文内容应位于.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();