我们有一个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."
}
答案 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();