服务器415响应代码

时间:2012-01-02 10:50:30

标签: java jersey jetty jax-rs http-request

我使用Jetty Web服务器,使用Jersey进行REST处理。

我定义了:

@POST
@Path("/sendMessage")
@Consumes ({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
public Response sendMessage(@Context final UriInfo uriInfo) 
{
    logger.debug("sendMessage:");
    System.out.println("Received POST!");
    return Response.status(Response.Status.OK).build();

}

但是,当我发送http请求http://localhost:8080/hqsim/sendMessage时,服务器返回415代码。

这就像是不允许通话。我该如何解决这个错误?

2 个答案:

答案 0 :(得分:23)

415表示不支持媒体类型。 最可能的情况是您要么丢失请求中的Content-Type标头,要么是不正确的。在您的情况下,它必须是application/xmltext/xml

答案 1 :(得分:0)

如果你正在使用 axios,并且正在制作;

a) 一个 post 请求,你应该定义如下请求

await axios.post("the url you're speaking to",
     {the data to post}, 
     {
        headers: {"Content-Type": "application/json"}
     })

b) 一个获取请求;

await axios.get("the url you're speaking to",
     {
        data: {},
        headers: {"Content-Type": "application/json"},
        params: {'varX': '34'}
     })

其中 varX 是您与请求一起发送的变量的名称 如果您不发送查询字符串,params 也可以为空。

因此该网址将显示为;

https://myurl.com/?varX=34