2015-10-04 3 views
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"; 

Я не могу понять, почему он не работает, если в параметрах пути присутствует косая черта (/).

+0

Try и просто сделать 'target.path (Filepath) .reqest()'. И почему 'MediaType.APPLICATION_JSON'? Не имеет смысла для ресурса запроса. –

+0

@peeskillet Я удалил 'MediaType.APPLICATION_JSON', поскольку это не имеет смысла. 'target.path (filePath) .reqest()' не работал для меня. В нем говорится: «Запрошенный ресурс недоступен». потому что он принимает косые черты как некоторый путь к ресурсам и пытается выяснить этот ресурс на стороне сервера –

ответ

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