id | title | sidebar_label |
---|---|---|
build_interface | 构建接口 | 构建接口 |
在 Forest 依赖加入好之后,就可以构建 HTTP 请求的接口了。
在 Forest 中,所有的 HTTP 请求信息都要绑定到某一个接口的方法上,不需要编写具体的代码去发送请求。请求发送方通过调用事先定义好 HTTP 请求信息的接口方法,自动去执行 HTTP 发送请求的过程,其具体发送请求信息就是该方法对应绑定的 HTTP 请求信息。
简单请求
创建一个interface
,并用@Request
注解修饰接口方法。
public interface MyClient {
@Request(url = "http://localhost:5000/hello")
String simpleRequest();
}
通过@Request
注解,将上面的MyClient
接口中的simpleRequest()
方法绑定了一个 HTTP 请求, 其 URL 为http://localhost:5000/hello
,并默认使用GET
方式,且将请求响应的数据以String
的方式返回给调用者。
稍复杂点的请求
public interface MyClient {
@Request(
url = "http://localhost:5000/hello/user",
headers = "Accept: text/plain"
)
String sendRequest(@DataParam("uname") String username);
}
上面的sendRequest
方法绑定的 HTTP 请求,定义了 URL 信息,以及把Accept:text/plain
加到了请求头中, 方法的参数String username
绑定了注解@DataParam("uname")
,它的作用是将调用者传入入参 username 时,自动将username
的值加入到 HTTP 的请求参数uname
中。
如果调用方代码如下所示:
MyClient myClient;
...
myClient.sendRequest("foo");
这段调用所实际产生的 HTTP 请求如下:
GET http://localhost:5000/hello/user?uname=foo
HEADER:
Accept: text/plain