Как отправить массив (текст с запятыми) как HTTP-параметр, используя Rest Assured (Java) - PullRequest
0 голосов
/ 10 апреля 2020

Я использую платформу Rest Assured (Java).

Мне нужно отправить целочисленный массив как http-параметр в запросе get: http://example.com: 8080 / myservice? Data_ids = 11,22 , 33

    Integer[] ids = new Integer[] {11, 22, 33};

    ...

    RequestSpecificationImpl request = (RequestSpecificationImpl)RestAssured.given();
    request.baseUri("http://example.com");
    request.port(8080);
    request.basePath("/myservice");

    ...

    String ids_as_string = Arrays.toString(ids).replaceAll("\\s|[\\[]|[]]", "");
    request.params("data_ids", ids_as_string);

    System.out.println("Params: " + request.getRequestParams().toString());
    System.out.println("URI" + request.getURI());

Что я вижу в консоли:

Params: {data_ids=11,22,33}
URI: http://example.com:8080/myservice?data_ids=11%2C22%2C33

Почему мои запятые превращаются в '% 2 C'?

Что нужно сделать, чтобы запятые передавались как надо?

1 Ответ

0 голосов
/ 10 апреля 2020

Отключить кодировку URL, так просто

given().urlEncodingEnabled(false);

Официальная документация

Проверено локально,

enter image description here

...