0
У меня есть ниже код клиента:Джерси клиент плохой запрос
String filePath = "/testzip/123/TEST-test.zip";
target = mainTarget.path("file").path("{filePath}");
Invocation.Builder invocationBuilder = target
.resolveTemplate("filePath", filePath)
.request(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_OCTET_STREAM);
Response response = invocationBuilder.get();
Ниже мой код сервера:
@GET
@Path("{filePath}")
@Produces({MediaType.APPLICATION_OCTET_STREAM})
public Response get(@PathParam("filePath") String filePath) {
File file = new File(filePath);
return Response.status(Response.Status.OK).entity(file).build();
}
Этот клиент бросает Bad Запросить исключение в то время как я отправляю ниже Filepath:
String filePath = "/testzip/123/TEST-test.zip";
Но он отлично работает, когда я отправляю ниже filePath (простая строка):
String filePath = "testzip";
Я не могу понять, почему он не работает, если в параметрах пути присутствует косая черта (/).
Try и просто сделать 'target.path (Filepath) .reqest()'. И почему 'MediaType.APPLICATION_JSON'? Не имеет смысла для ресурса запроса. –
@peeskillet Я удалил 'MediaType.APPLICATION_JSON', поскольку это не имеет смысла. 'target.path (filePath) .reqest()' не работал для меня. В нем говорится: «Запрошенный ресурс недоступен». потому что он принимает косые черты как некоторый путь к ресурсам и пытается выяснить этот ресурс на стороне сервера –