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

有保证的分段上传

谷梁淇
2023-03-14

我正在尝试使用放心的分段上传方法上传csv文件。在 swagger API 文档中,请求正文如下所示,用于分段 csv 上传。

{
"file":"string"
}

我的代码是这样的。

String file = "src/resources/ccp/csvs/sample.csv"
    responsePost = given()
                .multiPart("file", new File(file), "text/csv" )
//                .header("Content-type", "application/json")
                .and()
                .when()
                .post(url)
                .then()
                .extract().response();

这在IntelliJ的想法中工作,没有任何问题。但是,当我使用maven将代码打包到jar中并运行它时,它会返回fileNotes异常。

如我所见,唯一的解决方案是使用java文件input stream,但既然swagger说要使用文件,那就不可能使用inputstream,不是吗?

有没有其他方法来处理这个问题?

共有1个答案

章高爽
2023-03-14

根据RequestSpecification类的可靠Javadocs,可在以下位置找到:

https://www.javadoc.io/static/com.jayway.restassured/rest-assured/2.9.0/com/jayway/restassured/specification/RequestSpecification.html

总共有13个重载。multiPart方法。其中一些采用InputStream。因为您将MIME类型指定为参数,所以我认为您需要此版本:

multiPart(String controlName, String fileName, InputStream stream, String mimeType)

因此,如果您有InputStream而不是文件路径,那么使用此版本的方法应该可以满足您的需要。只需注意,除了InputStream之外,您还必须提供一个文件名,因为InputStriam对象不像磁盘上的文件那样具有与之关联的文件名。

如果文件不在.jar文件中,而是在磁盘上,则应该能够使用采用文件路径的 multiPart 方法的版本。您只需要提供文件的正确路径。执行此操作的最佳方法是计算绝对路径,而不是对基目录是什么做出任何假设,如果您提供像示例中那样的相对路径,则必须执行此操作。

 类似资料:
  • 从我对Flink的一点经验来看,我已经注意到,即使我们有按顺序到达的事件,它们也应该在对顺序进行分区之后到达。这里讨论的是:流中记录的排序 所以我有3个问题延伸了上面提到的问题: > 我仍然不清楚keyBy函数后订单丢失的原因。为什么会发生这种情况? 是否有办法确保即使在分区之后事件的顺序? 如果我们不创建KeyedStreams,那么每个并行操作符的事件顺序是否有保证?

  • 我有一个用例,我将把一个json-schema作为输入,验证它,然后保存在我的系统中。稍后,我将获取json数据,我需要使用上面提到的json-schema来验证这些数据。给定这个场景,我需要执行两个级别的验证: 我使用的是json-schema-validator jar,只能找到第二级验证,在文档中找不到json-schema验证。例如:假设我们有以下示例json-schema:

  • 我编写了以下代码来使用多部分上传(每个部分大于5 MB)将集合字符串上传到S3,但当我从S3下载回来时,它只包含来自一个部分的字符串。 我按以下顺序调用上述代码。 创建低级多部分上传对象 循环上传零件 呼叫完成上传

  • 我有几个lambda函数,可以将多部分上传到Amazon S3存储桶。它们负责创建多部分上传,然后为每个部分上传创建另一个,最后一个用于完成上传。 前两个似乎工作正常(它们以statusCode 200响应),但最后一个失败了。在Cloudwatch上,我可以看到一个错误,说“您建议的上传小于允许的最小大小”。 事实并非如此,因为我上传的文件大于文档上指定的最小大小5Mb。但是,我认为问题发生在每

  • 问题内容: 由于迁移到Swift 3,我发现很难编译使用Alamofire的项目。 上载multipartFormData时发生问题: 对成员’upload(_:to:method:headers :)的含糊引用 任何帮助,不胜感激,在此先感谢! 解决: 这就是应该在Swift 3中实现上传方法的方式 问题答案: 例如,在 Swift 3中* 使用 Alamofire 4.0.0 : * (确保您

  • 主要内容:Maven依赖关系,HttpClient分段上传请求示例在本教程中,我们将演示如何使用Apache HttpClient 4.5进行分段上传http请求。 Maven依赖关系 我们使用maven来管理依赖关系,并使用Apache HttpClient 4.5版本。 将以下依赖项添加到您的项目中。 pom.xml 文件的内容如下 - HttpClient分段上传请求示例 在这个例子中,我们将演示如何使用HttpClient 4.5来分段上传文件。 我们使