【发布时间】:2018-03-12 16:32:40
【问题描述】:
我正在我的 java 代码中发出一个 GET 请求,我想用来执行 GET 请求的 URL 是:
然而它的出现是:
请注意以下字符正在被替换:
% 到 %25
如何确保我的请求按照我的要求发送。我的代码如下所示:
public static String getRequest(String id, String startTs, String endTs) {
Response response = givenAuthJson("username", "password")
.queryParam("startTime", startTs)
.queryParam("endTime", endTs)
.get(BASE_URL+"/sms/v1/{id}", id);
response
.then()
.spec(responseSpec);
return response.asString();
}
我称这个方法为:
.getRequest("222222", "2015-12-29T14%3A00%3A00.000Z","2015-12-29T15%3A00%3A00.000Z");
您能否使用给出的代码举例或回答?谢谢。
【问题讨论】:
-
这是
RestAssured吗?你检查this了吗? -
那是 %-encoding,它用服务器期望的字符编码中的字节替换非 ASCII 和特殊字符(几乎总是 UTF-8,但这取决于服务器)。你的图书馆假设你想要,但你已经做到了。 @BackSlash 似乎是为什么。
-
@BackSlash - 使用您的建议,它看起来更好,但仍然是“%”符号导致问题。 /sms/v1/222222?startTime=2015-12-29T14%253A00%253A00.000Z&endTime=2015-12-29T15%253A00%253A00.000Z。我更新了问题以反映这一点。
-
您正在对已编码的参数进行编码。你方法的参数应该是
"2015-12-29T14:00:00.000Z", "2015-12-29T15:00:00.000Z"。
标签: java url get character-encoding