Restful接口与Retrofit请求

retrofit需要了解的请点击这里,http不了解请自行百度,接下来直奔主题。(例子参考retrofit 官网)

第一个例子

@GET("users/list")

SpringMVC是这样接收的,(请忽略那些参数,返回值,)

@RestController
@RequestMapping("/users")
public class Fcontroller {
    @RequestMapping(value = "/list" ,method = RequestMethod.GET)
    public String test(HttpServletRequest request, HttpServletResponse response){//接收参数看实际情况
        return "{\"result\":\"ok\"}";//不要在意返回值
    }
}
第二个例子(GET取参

@GET("users/list?sort=desc")

SpringMVC是这样接收的,(请忽略那些参数,返回值,当required为true时,表示该参数必填)

@RestController
@RequestMapping("/users")
public class Fcontroller {
    //直接在方法体中指定参数(接收参数的变量名与请求参数名保持一致 sort = sort )
    @RequestMapping(value ="/list",method = RequestMethod.GET)
    public String test(String sort) {
        return "{\"result\":\"ok\"}";
    }
     //直接在方法体中指定参数(接收参数的变量名与请求参数名保持一致name= sort = sort )
    @RequestMapping(value ="/list",method = RequestMethod.GET)
    public String test1(@RequestParam(name = "sort", required = true) String id) {
        return "{\"result\":\"ok\"}";
    }
    //直接在HttpServletRequest获取参数( 这个是重点 )
    @RequestMapping(value ="/list",method = RequestMethod.GET)
    public String test2(HttpServletRequest request) {
        String s= Integer.parseInt(request.getParameter("sort"));//获取参数
        return "{\"result\":\"ok\"}";
    }

}
第三个例子(路径参数)

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId);

SpringMVC的PathVariable是这样接收的,(请忽略那些参数,返回值,)

@RestController
@RequestMapping("/group")
public class Fcontroller {
    @RequestMapping(value = "/{id}/users" ,method = RequestMethod.GET)
    public String test(@PathVariable(name = "id", required = true) Integer id){//接收参数看实际情况
        return "{\"result\":\"ok\"}";//不要在意返回值
    }
}
第四个例子(额,来了个胖点的要不先饿几天)

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);

SpringMVC是这样接收的,(1.拿到路径参数,2.参照例2获取map参数,请忽略那些参数,返回值,)

@RestController
@RequestMapping("/group")
public class Fcontroller {
    @RequestMapping(value = "/{id}/users" ,method = RequestMethod.GET)
    //接收参数看实际情况
    public String test(@PathVariable(name = "id", required = true) Integer id,HttpServletRequest request){
        //request.getParameter("*"),当然会和后台提前定义好接收参数的key。
        return "{\"result\":\"ok\"}";//不要在意返回值
    }
}
第五个例子到post了
    以下4点是使用post方式提交请求数据时必须满足的先决条件(感觉啥都没弄错,服务端就是收不到参数的看看这里):

    1. HTTP请求或者是HTTPS请求。

    2. HTTP的请求方法为POST方式。

    3. 内容类型是application/x-www-form-urlencoded。

    4. servlet已经在请求对象上初始化调用了getParameter方法。

若不满足上述条件,post提交的表单数据不会包含在参数集中,但post的数据本身仍然可以通过请求对象的输入流进行访问。若满足上述条件,post提交的表单数据就不能再通过请求对象的输入流进行直接访问了。(重要注意:若"Content-Type"="application/application/json",只适用get ;若"Content-Type"="application/x-www-form-urlencoded",post get都可以。
)


@POST("users/new")
Call<User> createUser(@Body User user);

SpringMVC是这样接收的,(请忽略那些参数,返回值,)

@RestController
@RequestMapping("/users")
public class Fcontroller {
    @RequestMapping(value = "/new" ,method = RequestMethod.POST)

    public String test(HttpServletRequest request, HttpServletResponse response){//接收参数看实际情况
        return "{\"result\":\"ok\"}";//不要在意返回值
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,777评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,178评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,523评论 25 709
  • 我是停留在你指尖的一滴水 我,没有颜色,没有张力 我来到这个世界 流经你的肌肤 在你的仰望里 等待自由脱落 等待万...
    茶娃娃阅读 1,526评论 0 0
  • 今天闺女班里进行了一次数学小测验,有三名同学全对,得了满分!回到家我就询问闺女她的测试情况,闺女说她错了三道题,我...
    五颜六色的圆圈小宿阅读 559评论 0 0

友情链接更多精彩内容