具有边界的放心的解析身体响应

时间:2018-11-15 10:50:36

标签: java download get rest-assured boundary

我使用RestAssured,并且尝试通过de GET调用下载文件。

我的问题是请求正文是用边界组织的。

所以我得到的文件包含太多信息,无法使用。 这是一个下载的简单文本文件的内容示例:

  

-a8f82a89-d9c2-4fcb-a612-06e286bfcf66   内容处置:表单数据; name =“元数据”; filename =“元数据”   内容类型:application / json   {“ name”:“ Fichier_de_calcul.txt”,“ id”:{“ metadata”:{“ deleted”:false,“ ephemeral”:false,“ syntheised”:true,“ systemOwned”:true,“ readOnly”:false ,“ synchronisable”:true,“ createdOn”:“ 2018-11-09T15:36:39Z”,“ enabled”:true,“ lastModifiedOn”:“ 2018-11-09T15:36:40.444Z”},“ value” :{“ @ type”:“ CoreKit.UUIDKey”,“ value”:“ 4de39a67-0075-4232-a236-09ab8d10aed9”}}}   --a8f82a89-d9c2-4fcb-a612-06e286bfcf66   内容处置:表单数据; name =“ @ type”; filename =“ @ type”   内容类型:文本/纯文本   CoreKit.FileMetadataAndFile   --a8f82a89-d9c2-4fcb-a612-06e286bfcf66   内容处置:表单数据; name =“文件”; filename =“文件”   内容类型:应用程序/八位字节流   2   4   6   8   10   --a8f82a89-d9c2-4fcb-a612-06e286bfcf66-

这是我用来获取该文件的代码:

    Response resp = RestAssured.given().headers(headers).get(url);
    byte[] fileContent = resp.body().asByteArray();
    File fileToSave = new File(classPath);
    try {
        Files.write(fileContent, fileToSave);
    } catch (IOException e1) {
        e1.printStackTrace();
    }

有人知道我该怎么做:

解析正文(我想获取“文件名”参数) 根据“应用程序/八位字节流”部分创建下载的文件。

谢谢=)

1 个答案:

答案 0 :(得分:0)

能否请您尝试以下方法: 您可以设置所有标头,并使用网址获取请求。

    Response response=RestAssured.given().header("Content-Type", "application/json").get("yourURL").then().contentType(ContentType.JSON).extract().response();
String finaleNAme=response.jsonPath().get("jsonValuewhichyouwanttoget");