无法使用 Java 中的 Rest Assured 框架在 JSON 对象中发布以反斜杠 (\) 开头的字符串

问题描述 投票:0回答:1

我正在使用 Java 的 Rest Assured 框架,我有一个场景来传递以 "\ip oldName" 开头的共享路径。

JSONObject data = new JSONObject(); data.put("name", ReadInputFile.caseName); data.put("projectFolderPath", ReadInputFile.casePath); data.put("responsiveFilePath", ReadInputFile.jobPath); System.out.println("Input data : " + data);
仅供参考,ReadInputFile.casePath 和 ReadInputFile.jobPath 的格式为 

"\\ip\folderName".

当我打印它时,由于转义字符而跳过了一个反斜杠,并得到了预期的格式为

“\ ip oldName”

但是当我在下面的代码中传递它时,我得到的结果为

"\\ip\folderName"

RequestSpecification res2 = RestAssured.given().log().all().baseUri(ReadInputFile.url).cookies(cook) .contentType("application/json").body(data);
然后我尝试像这样使用

“\ ip \folderName”,打印时的输出是“\ ipfolderName”,当我在res2中以相同的格式使用它时,我得到的输出为“ \ipfolderName"

最后,我希望结果应该是

"\ip oldName"

java json rest rest-assured jsonobjectrequest
1个回答
0
投票
转义仅适用于字符串文字。如果您从文件中读取斜杠,它们不会被读取为转义字符,而是被读取为文字斜杠。

如果打印 ReadInputFile.casePath 它应该打印 6 个斜杠:

System.out.println(ReadInputFile.casePath) //Prints "\\\\ip\\folderName"
如果打印文字“\ip oldName”,斜杠将被视为转义字符:

System.out.println("\\\\ip\\folderName") //Prints "\\ip\folderName"
顺便说一句。这与 Rest 或 JSON 无关 - 这只是转义字符的工作原理。

© www.soinside.com 2019 - 2024. All rights reserved.