16

我正在使用 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 代码。

就好像不允许打电话一样。我该如何解决这个错误?

4

2 回答 2

30

415 表示媒体类型不受支持。最可能的情况是您缺少Content-Type请求中的标头,或者它不正确。在您的情况下,它必须是application/xmlor text/xml

于 2012-01-05T08:28:03.167 回答
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 是您与请求参数一起发送的变量的名称,如果您不发送查询字符串,也可以为空。

因此,该网址将显示为;

https://myurl.com/?varX=34 
于 2021-05-09T16:11:45.077 回答