Retrofit 网络请求参数注解@Path @Field @Query 等使用

news/2025/1/15 19:55:51/

请求参数呢大致如下,到个别人的图, 下面就说下这些内容使用

其中 @Path、@Query、@QueryMap 使用 Get 请求 , 加入使用了Post 请求注解使用@Path  一般都会是项目崩溃的,

所以这里我总结了一下自己使用的经验

1 @Path 会是url 中带有参数一般配合{} 一起 

 @GET("toutiao/index/{type}/{key}")Observable<BaseBean<LoginBean>> getLogin(@Path("type")String type,@Path("key") String key);

 请求地址类似这样的

这样的请求一般 是把要传递的参数直接拼接到url 后面 

2 @Query 是把key-value 拼接到url 后面 不要使用{}

 @GET("toutiao/index/ ")Observable<BaseBean<LoginBean>> getLogin(@Query("type") String type,@Query("key") String key);

请求地址类似这样的

3 @QueryMap 这个和@Query 差不多,就是当参数很多的时候直接传递一个map 写法如下

    @GET("toutiao/index/ ")Observable<BaseBean<LoginBean>> getLogin(@QueryMap Map<String, String> map);

请求接口地址

上面三个请求参数使用的GET请求

常使用的@Field 和@FieldMap

实用与POST 请求

4 @Field  一般 配合 @FormUrlEncoded 使用  

*************************************************************

标记类 :

@FormUrlEncoded主要是做表单提交,与@POST结合使用

@Multipart主要是与@POST结合使用做文件的上传

@Streaming主要做大文件下载

***************************************************************

一般使用如下

@FormUrlEncoded@POST("toutiao/index")Observable<BaseBean<LoginBean>>getPostLogin(@Field("type") String type,@Field("key") String key);

5  @FieldMap

一般使用如下

 @FormUrlEncoded@POST("toutiao/index")Observable<BaseBean<LoginBean>>getPostLogin(@FieldMap Map<String, String> map);

 6 @Body

会将请求参数放到请求体中,适用于POST请求 个人感觉和Map 类似,使用方法如下

public interface NetApi {@POST("toutiao/index")Call<CallBean>getNews(@Body LoginParams loginParams);class LoginParams{public String type;public String key;}

调用

  Retrofit retrofit = new Retrofit.Builder()  //创建Retrofit 对象.baseUrl("http://v.juhe.cn/") //指定url.addConverterFactory(GsonConverterFactory.create()) //把json 转成bean.build();NetApi netApi = retrofit.create(NetApi.class); //创建一个请求接口的api//请求传递参数
//                Call<CallBean> data = netApi.getNews("top","b3aecf831dae022145e308abe1af773a");NetApi.LoginParams params = new NetApi.LoginParams();params.type ="top";params.key ="11111111";Call<CallBean> data = netApi.getNews(params);//执行异步请求data.enqueue(new Callback<CallBean>() {@Overridepublic void onResponse(Call<CallBean> call, Response<CallBean> response) {Log.e("----------result", response.body().toString());}@Overridepublic void onFailure(Call<CallBean> call, Throwable t) {Log.e("-------onFailure", String.valueOf(t));}});

 

 

 

 


http://www.ppmy.cn/news/610561.html

相关文章

wamp的mysql单独使用_Windows 7+8.1+10 单独安装配置 PHP+Apache+MySQL(不使用 WAMP)

Windows 8.1 单独安装配置 PHPApacheMySQL(不使用 WAMP)本文同样适用于Windows7和100x00 PHP【下载】http://www.doczj.com/doc/b3aef488f18583d048645937.html/downloads.php注&#xff1a;选择线程安全的版本&#xff0c;留意 VC 支持库的版本&#xff0c;9、11、14 分别对应…

Word文档以两列的格式打开,类似于书本那样

按住Ctrl&#xff0c;向上滚动鼠标滚轮 转载于:https://www.cnblogs.com/bravesunforever/p/10877213.html

CentOS7环境搭建使用PhpStorm上传代码

一、虚拟机介绍 虚拟机&#xff08;Virtual Machine&#xff09;指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 虚拟系统通过生成现有操作系统的全新虚拟镜像&#xff0c;它具有真实windows系统完全一样的功能&#xff0c;进入虚拟系…

知识图:从图和数据库中获取知识

知识图&#xff1a;从图和数据库中获取知识 知识图到底是什么&#xff0c;以及关于它们的所有炒作是什么&#xff1f;如果想成为世界各地的Airbnbs&#xff0c;Amazon&#xff0c;Google和LinkedIn&#xff0c;那么学会区分真实的炒作&#xff0c;定义不同类型的图以及为用例选…

【复杂网络建模】——使用fsove求解非线性方程和导数

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4a…

25个iptables常用示例

本文将给出25个iptables常用规则示例&#xff0c;这些例子为您提供了些基本的模板&#xff0c;您可以根据特定需求对其进行修改调整以达到期望。 格式 iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型] 参数 -P 设置默认策略:iptables -P INPUT (DROP|ACCEPT)-F 清空规则…

mysql中3张表如何关联查询_mysql三张表关联查询

三张表&#xff0c;需要得到的数据是标红色部分的。sql如下&#xff1a;select a.uid,a.uname,a.upsw,a.urealname,a.utel,a.uremark, b.rid,b.rname,b.rremark,c.deptid,c.deptname,c.deptremarkfrom table1 a,table2 b,table3 c where a.sems_role_ridb.rid and a.udeptidc.d…

Kafka简介及使用PHP处理Kafka消息

Kafka简介及使用PHP处理Kafka消息 Kafka 是一种高吞吐的分布式消息系统&#xff0c;能够替代传统的消息队列用于解耦合数据处理&#xff0c;缓存未处理消息等&#xff0c;同时具有更高的吞吐率&#xff0c;支持分区、多副本、冗余&#xff0c;因此被广泛用于大规模消息数据处理…