【问题标题】:405 error in POST methodPOST 方法中的 405 错误
【发布时间】:2017-08-14 11:03:59
【问题描述】:

休息控制器:

@Path("/json")
public class Second {
    @POST
    @Path("/say")
    @Consumes(MediaType.TEXT_PLAIN)
    public String hello() {
        return "hello";
    }
}

请求调用返回 HTTP 状态代码 405

【问题讨论】:

  • 需要更多细节:什么服务器、版本、配置、调用代码
  • 你是如何访问端点“say”的?
  • 你应该澄清你正在做的请求是什么(参数等等)。
  • 服务器版本是tomcat 7@JacekCz
  • 这是 POST 请求,也许您正试图通过 GET 请求调用它,我猜这是唯一的问题,否则它应该可以正常工作。

标签: java json


【解决方案1】:


首先,405 是方法不允许的错误。所以你需要把它改成@GET。
其次,如果你想打印json,你应该使用@Produces({MediaType.APPLICATION_JSON}) 以下是 GET 方法的示例:

//GET method to print JSON 
@Path("/say")
@GET
@Produces({MediaType.APPLICATION_JSON})
public String hello()
{
    return "{\"message\":\"hello\"}";

}

或者如果你必须得到纯字符串(如问题所述),那么试试这个:

@Path("/say")
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello()
    {
        return "hello";

    }

对于 POST 方法,您需要将数据(在这种情况下为字符串)作为参数传递

 @Path("/say")
    @POST
    @Produces(MediaType.TEXT_PLAIN)
    public String hello(String name)
    {
        return "hello "+name;

    }

附:也不要忘记为您的 html 输入标签提供名称属性

希望对你有帮助。

【讨论】:

  • thanku 4 rply @Ashish Raj...bt GET 方法运行良好...但是我在使用 POST 方法的代码中遇到错误..所以你能帮我写那个代码吗? .
  • 告诉我你需要发布什么 json,
  • 我需要在我的 html 表单中的文本字段中发布名称。当我点击保存按钮时,我需要在我的服务器中看到这个名称。 @Ashish Raj
  • 您是使用 Angular 还是 javascript 将其发布到您的 REST 方法中?告诉我你是怎么调用 post 方法的
  • 如果您知道 json 中的任何字符串变量可以使用 POST() 方法在服务器中发布,这将很有帮助 @Ashish Raj
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-16
  • 2019-07-05
  • 2013-12-05
  • 2012-10-26
  • 1970-01-01
相关资源
最近更新 更多