Skip to main content
Version: Next

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注解混淆