2016-03-29 4 views
0

Я борюсь с путем парами кодирования с дооснащением:Пути URL Параметр Кодировка

  • http://localhost:8080/nuxeo/api/v1 моя база URL.
  • У меня есть этот вызов @GET("path/{documentPath}") Call<Document> fetchDocumentByPath(@Path("documentPath") String docPath);

  • Как пары, я устанавливаю следующее: default-domain/blabla

  • я выполнить запрос против моего TOMCAT приложения и я получаю этот ответ

Response{protocol=http/1.1, code=400, message=Bad Request, url=http://localhost:8080/nuxeo/api/v1/path/default-domain%2Fblabla}

  • Даже если я поместил encode = true, чтобы сказать «не enco мой параметр, он уже закодирован », он все еще кодирует его.

  • Кроме того, в модернизации, этот тест retrofit2.RequestBuilderTest#getWithEncodedPathParam не работает, если мы помещаем Request request = buildRequest(Example.class, "po/ng"); со следующим утверждением: assertThat(request.url().toString()).isEqualTo("http://example.com/foo/bar/po/ng/");

Tomcat ограничил его URL проверки по соображениям безопасности: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450.

Поэтому я хотел бы отправить '/' непосредственно в свой параметр пути, не кодируя его в% 2F. Как я могу это достичь?

Спасибо!

+0

Я использую эту версию 'parent-2.0.0-beta3' – Viodek

+0

По-видимому, она исправлена ​​в beta4. Я не знаю, что связано с ошибкой и исправлением. Будет подтверждать, что тесты будут проводиться глобально на моей стороне. – Viodek

+0

Подтверждено. Использование encoded = true теперь корректно работает с parent-2.0.0-beta4 – Viodek

ответ

0

С parent-2.0.0-beta4 параметр аннотации @Path теперь работает правильно.

Смежные вопросы