id | title | sidebar_label |
---|---|---|
http_method | HTTP Method | HTTP Method |
使用POST
方式
public interface MyClient {
/**
* 通过 @Request 注解的 type 参数指定 HTTP 请求的方式。
*/
@Request(
url = "http://localhost:8080/hello",
type = "POST"
)
String simplePost();
/**
* 使用 @Post 注解,可以去掉 type = "POST" 这行属性
*/
@Post("http://localhost:8080/hello")
String simplePost();
/**
* 使用 @PostRequest 注解,和上面效果等价
*/
@PostRequest("http://localhost:8080/hello")
String simplePost();
}
除了GET
和POST
,也可以指定成其他几种 HTTP 请求方式(PUT
, HEAD
, OPTIONS
, DELETE
)。
其中type
属性的大小写不敏感,写成POST
和post
效果相同。
// GET请求
@Request(
url = "http://localhost:8080/hello",
type = "get"
)
String simpleGet();
// POST请求
@Request(
url = "http://localhost:8080/hello",
type = "post"
)
String simplePost();
// PUT请求
@Request(
url = "http://localhost:8080/hello",
type = "put"
)
String simplePut();
// HEAD请求
@Request(
url = "http://localhost:8080/hello",
type = "head"
)
String simpleHead();
// Options请求
@Request(
url = "http://localhost:8080/hello",
type = "options"
)
String simpleOptions();
// Delete请求
@Request(
url = "http://localhost:8080/hello",
type = "delete"
)
String simpleDelete();
另外,可以用@GetRequest
, @PostRequest
等注解代替@Request
注解,这样就可以省去写type
属性的麻烦了。
// GET请求
@Get("http://localhost:8080/hello")
String simpleGet();
// GET请求
@GetRequest("http://localhost:8080/hello")
String simpleGetRequest();
// POST请求
@Post("http://localhost:8080/hello")
String simplePost();
// POST请求
@PostRequest("http://localhost:8080/hello")
String simplePostRequest();
// PUT请求
@Put("http://localhost:8080/hello")
String simplePut();
// PUT请求
@PutRequest("http://localhost:8080/hello")
String simplePutRequest();
// HEAD请求
@HeadRequest("http://localhost:8080/hello")
String simpleHead();
// Options请求
@Options("http://localhost:8080/hello")
String simpleOptions();
// Options请求
@OptionsRequest("http://localhost:8080/hello")
String simpleOptionsRequest();
// Delete请求
@Delete("http://localhost:8080/hello")
String simpleDelete();
// Delete请求
@DeleteRequest("http://localhost:8080/hello")
String simpleDeleteRequest();
如上所示,请求类型是不是更一目了然了,代码也更短了。
@Get
和@GetRequest
两个注解的效果是等价的,@Post
和@PostRequest
、@Put
和@PutRequest
等注解也是同理。
:::caution 注意 HEAD请求类型没有对应的@Head注解,只有@HeadRequest注解。原因是容易和@Header注解混淆 :::