当前位置: 首页 > 知识库问答 >
问题:

Rest保证-发送POST请求(内容类型:多部分/表单数据)与静态JSON负载和文件上传

阎雪峰
2023-03-14

我想发送一个邮政请求-

  1. 内容类型为“多部分/表单数据”
  2. 在“Body”部分,我有两个参数-

在Rest-Assured代码中,我能够用下面的代码获得字符串格式的静态JSON负载-

            String jsonFilePath = "<<Path to JSON File>>/Test_new.json";
        String response = given().log().all().header("X-AUTH-TOKEN",res).body(new String(Files.readAllBytes(Paths.get(jsonFilePath)))).     
                when().post("<<POST RESOURCE URL>>").
            then().log().body().assertThat().statusCode(200).extract().response().asString();

当运行此代码时,只有静态JSON有效载荷,我得到了“415”错误代码。问题-

  1. 我们怎样才能成功地打这种电话呢
  2. 当我想通过这个电话上传文件时,怎么做

共有1个答案

赫连华皓
2023-03-14

上传文件需要使用MultiPart()方法,而不是body()方法。例如:

File json = new File("src/test/resources/test_new.json");
File file = new File("src/test/resources/debug.log");

given().log().all()
        .multiPart("files", file)
        .multiPart("body", json, "application/json")
        .post("your_url");
 类似资料:
  • 我正在尝试通过API发送post请求。呼叫要求: 我已经使用Charles HTTP代理查看需要发送哪些头/内容。 我的请求:(基本上抄录自查尔斯的多部分章节) 如有任何帮助,我们将不胜感激!干杯!

  • 我仍然对上传文件的不同方法感到困惑。后端服务器不在我的控制之下,但我可以使用Swagger page或Postman上传文件。这意味着服务器运行正常。但当我使用AngularJS进行上传时,它不起作用。 以下是使用Postman进行测试的方法。我只是在使用表单数据: 请注意,请求头的内容类型为多部分/表单数据。但是请求负载具有文件名和内容类型,即image/png。 这是我的代码: 参数只是图像数

  • 在将FreshDesk集成到我的产品中时,我被用附件API创建票证所困扰。我使用高级Rest客户端测试API。我已经看到了许多关于栈溢出本身的论坛和问题,但我仍然对任何关于上传文件的多部分形式数据POST请求的回答不满意。 我想知道Advanced Rest Client中所需的请求格式以及标题 到目前为止,这是我正在使用的请求,但我没有得到正确的响应:

  • 以下API使用postman工作: Spring boot,后端代码: ReactJS,前端代码:我在中有对象数组。 触发功能的按钮: 我需要将我的前端(ReactJS)代码更改为,就像我使用postman发布请求一样。当前JS代码导致以下错误响应: Servlet。路径为[]的上下文中的servlet[dispatcherServlet]的service()引发了异常[请求处理失败;嵌套异常为o

  • 我有一个多部分表单,其中请求的第一部分是表单数据,第二部分是文件。请求的第一部分缺少一个文件名,第二部分有一个空的有效负载,二进制内容应该在其中显示。 第一个内容处置缺少文件名="消息"。我试着把它改成Blob,但是负载是空的。不管我怎么做,我都无法让文件显示在负载中。它应该显示类似于PDF的东西 我的ajax请求:

  • 我试图发送一个帖子请求到一个php文件,该文件有帖子数据和文件上传,这里是我发送的内容,设置标题的代码,我有的php文件,以及我从php中得到的东西file:([图像文件内容]是我正在发送的图像文件二进制数据的占位符) 我的问题是_POST //我正在向服务器发送的数据: 对于我的标题,我有: php文件: php文件的结果: