Java URL编码转义特殊字符

时间:2018-03-12 16:32:41

标签: java url get character-encoding

我在我的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&# 34);

您能否使用给出的代码举例或回答?感谢。

1 个答案:

答案 0 :(得分:1)

好的 - 不确定我是否被允许回答我自己的问题,但如果有人和我做同样的事情,这是为了所有人的利益!

我通过添加以下

克服了这个问题
  

.urlEncodingEnabled(假)

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

感谢所有帮助过的人。