idtitlesidebar_label
    callback
    回调函数
    回调函数

    在Forest中的回调函数使用单方法的接口定义,这样可以使您在 Java 8Kotlin 语言中方便使用 Lambda 表达式。

    使用的时候只需在接口方法加入OnSuccess<T>类型或OnError类型的参数:

    1. @Request(
    2. url = "http://localhost:8080/hello/user",
    3. headers = {"Accept:text/plain"},
    4. data = "username=${username}"
    5. )
    6. String send(@DataVariable("username") String username, OnSuccess<String> onSuccess, OnError onError);

    如这两个回调函数的类名所示的含义一样,OnSuccess<T>在请求成功调用响应时会被调用,而OnError在失败或出现错误的时候被调用。

    其中OnSuccess<T>的泛型参数T定义为请求响应返回结果的数据类型。

    1. myClient.send("foo", (String resText, ForestRequest request, ForestResponse response) -> {
    2. // 成功响应回调
    3. System.out.println(resText);
    4. },
    5. (ForestRuntimeException ex, ForestRequest request, ForestResponse response) -> {
    6. // 异常回调
    7. System.out.println(ex.getMessage());
    8. });

    :::info 提示

    • 在异步请求中只能通过OnSuccess<T>回调函数接或Future返回值接受数据。
    • 而在同步请求中,OnSuccess<T>回调函数和任何类型的返回值都能接受到请求响应的数据。
    • OnError回调函数可以用于异常处理,一般在同步请求中使用try-catch也能达到同样的效果。 :::