我正在用Java代码发出GET请求,而我想用来执行GET请求的URL是:


  http://localhost:1111/sms/v1/222222?startTime=2015-12-29T14%3A00%3A00.000Z&endTime=2015-12-29T15%3A00%3A00.000Z


但是它的出现如下:


  http://localhost:1111/sms/v1/222222?startTime=2015-12-29T14%253A00%253A00.000Z&endTime=2015-12-29T15%253A00%253A00.000Z


请注意,以下字符已被替换:

%至%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”);


您能否使用给出的代码给出示例或答案?谢谢。

最佳答案

好-不确定我是否可以回答自己的问题,但是如果有人在做我的事情,这对所有人都有好处!

我通过添加以下内容解决了这个问题


  .urlEncodingEnabled(false)


参考:
how to handle Special character in query param value in Rest assured

感谢所有提供帮助的人。

关于java - Java URL编码转义特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49240156/

10-16 13:25