java - 如何在java中使用restful api以json格式返回404?

Posted

技术标签:

【中文标题】java - 如何在java中使用restful api以json格式返回404?【英文标题】:How to return 404 not found in json format using restful api in java? 【发布时间】:2021-12-21 22:14:24 【问题描述】:

如果 uri 不匹配,我想为 restful api 实现一个异常处理程序。 例如: url 是 localhost:8080\test\generateNumber 将返回 "response_code":"200" 如果网址错误,例如:localhost:8080\test\generateNumber2 将返回 "response_code":"404","message":"uri not found"

我不知道该怎么做。有人可以帮忙吗?

【问题讨论】:

我希望这会有所帮助Check it 不是我想要的 【参考方案1】:

我猜你正在使用 Spring?

在这种情况下,您可以像这样使用@ExceptionHandler:

@RestController
public class Example1Controller 

    @GetMapping(value = "/testExceptionHandler", produces = APPLICATION_JSON_VALUE)
    public Response testExceptionHandler(@RequestParam(required = false, defaultValue = "false") boolean exception)
            throws BusinessException 
        if (exception) 
            throw new BusinessException("BusinessException in testExceptionHandler");
        
        return new Response("OK");
    

    @ExceptionHandler(BusinessException.class)
    public Response handleException(BusinessException e) 
        return new Response(e.getMessage());
    


并收到一条消息作为回应。

更多 - 在this manual。

【讨论】:

以上是关于java - 如何在java中使用restful api以json格式返回404?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java Jersey REST服务中强制使用queryparams?

Java 中的 RESTful 调用

如何在 Java 中使用 RESTful Web 服务获取远程/客户端 IP 地址?

如何使用 REST 将 Json 字符串发送到 android 参数中的 java webservice?

在 Java 中提供 RESTful JSON API

如何在java REST API中用GZip和Jersey压缩相应