Version: 1.4.x

HTTP Method

使用POST方式

public interface MyClient {
/**
* 通过 @Request 注解的 type 参数指定 HTTP 请求的方式。
*/
@Request(
url = "http://localhost:5000/hello",
type = "POST"
)
String simplePost();
/**
* 使用 @Post 注解,可以去掉 type = "POST" 这行属性
*/
@Post(url = "http://localhost:5000/hello")
String simplePost();
/**
* 使用 @PostRequest 注解,和上面效果等价
*/
@PostRequest(url = "http://localhost:5000/hello")
String simplePost();
}

除了GETPOST,也可以指定成其他几种 HTTP 请求方式(PUT, HEAD, OPTIONS, DELETE)。

其中type属性的大小写不敏感,写成POSTpost效果相同。

// GET请求
@Request(
url = "http://localhost:5000/hello",
type = "get"
)
String simpleGet();
// POST请求
@Request(
url = "http://localhost:5000/hello",
type = "post"
)
String simplePost();
// PUT请求
@Request(
url = "http://localhost:5000/hello",
type = "put"
)
String simplePut();
// HEAD请求
@Request(
url = "http://localhost:5000/hello",
type = "head"
)
String simpleHead();
// Options请求
@Request(
url = "http://localhost:5000/hello",
type = "options"
)
String simpleOptions();
// Delete请求
@Request(
url = "http://localhost:5000/hello",
type = "delete"
)
String simpleDelete();

另外,可以用@GetRequest, @PostRequest等注解代替@Request注解,这样就可以省去写type属性的麻烦了。

// GET请求
@Get(url = "http://localhost:5000/hello")
String simpleGet();
// GET请求
@GetRequest(url = "http://localhost:5000/hello")
String simpleGetRequest();
// POST请求
@Post(url = "http://localhost:5000/hello")
String simplePost();
// POST请求
@PostRequest(url = "http://localhost:5000/hello")
String simplePostRequest();
// PUT请求
@Put(url = "http://localhost:5000/hello")
String simplePut();
// PUT请求
@PutRequest(url = "http://localhost:5000/hello")
String simplePutRequest();
// HEAD请求
@HeadRequest(url = "http://localhost:5000/hello")
String simpleHead();
// Options请求
@Options(url = "http://localhost:5000/hello")
String simpleOptions();
// Options请求
@OptionsRequest(url = "http://localhost:5000/hello")
String simpleOptionsRequest();
// Delete请求
@Delete(url = "http://localhost:5000/hello")
String simpleDelete();
// Delete请求
@DeleteRequest(url = "http://localhost:5000/hello")
String simpleDeleteRequest();

如上所示,请求类型是不是更一目了然了,代码也更短了。

@Get@GetRequest两个注解的效果是等价的,@Post@PostRequest@Put@PutRequest等注解也是同理。

注意

HEAD请求类型没有对应的@Head注解,只有@HeadRequest注解。原因是容易和@Header注解混淆

Last updated on