Retrofit中的注解

一、Retrofit中的注解有那些?

  • 方法注解:@GET ,@POST,@PUT,@DELETE,@PATH,@HEAD,@OPTIONS,@HTTP
  • 标记注解:@FormUrlEncoded,@Multpart,@Streaming
  • 参数注解:@Query,@QueryMap,@Body,@Field,@FieldMap,@Part,@PartMap
  • 其他注解:@path,@Header,@Headers,@Uri

二、了解方法注解@HTTP

@HTTP注解的作用是可以让我们自己自定义这次接口的请求方式。

  @HTTP(method = "GET", path = "get", hasBody = false)@FormUrlEncodedCall<ResponseBody> http(@Field("userName") String userName, @Field("password") String pwd);

参数method:使用http注解时必须要指定method,method如果是POST就会执行http方法执行post请求,method如果指定GET就会执行http方法执行get请求。

参数书path:指定path,就需要把指定请求的接口的地址传入

参数hasBody:指定hasBody,就是请求体。post请求有请求体就指定hasBody = true。get请求没有请求体就指定haBody = false。

三、了解参数注解@Body

使用@Body注解在接口类对象中的定义

    @POST("post")Call<ResponseBody> postBody(@Body RequestBody body);//自己指定requestBody

测试代码

public class AnnotationUnitTest {Retrofit retrofit = new Retrofit.Builder().baseUrl("http://www.httpbin.org/").build();//创建retrofit对象HttpbinService httpbinService = retrofit.create(HttpbinService.class);//创建接口类对象,并且设置为全局变量。@Testpublic void bodyTest()throws IOException {FormBody formBody = new FormBody.Builder().add("a", "1").add("b", "2").build();Response<ResponseBody> response = httpbinService.postBody(formBody).execute();System.out.println(response.body().string());}
}

测试结果

四、其他注解中的@path注解

在接口类对象中的使用

    @POST("{id}")Call<ResponseBody> pathInPath(@Path("id") String path);//@path注解作用于参数部分,意思是id=path帮我们替换掉@POST注解里面的参数

@path注解作用于参数部分,意思是{id}里面是id会被@path中的id替换掉替换成参数path

测试代码:

    @Testpublic void pathTest() throws IOException {//实际上请求到的是https://www。httpbin.org/postResponse<ResponseBody> response = httpbinService.pathInPath("post").execute();System.out.println(response.body().string());}

测试结果:

可以看到请求的url是http://www.httpbin.org/post,使用的是post请求

五、那么我们尝试使用@path注解调用post请求,并且传递用户名和密码两个参数

在接口类对象中的使用

@POST("{id}")@FormUrlEncodedCall<ResponseBody> pathInPath(@Path("id") String path,@Field("userName") String userName, @Field("password") String pwd);//@path注解作用于参数部分,意思是id=path帮我们替换掉@POST注解里面的参数

测试代码

    @Testpublic void pathTest() throws IOException {//实际上请求到的是https://www。httpbin.org/postResponse<ResponseBody> response = httpbinService.pathInPath("post","Anglin","rssqzqyp").execute();System.out.println(response.body().string());}

测试结果

六、其他注解中的@Header注解

@Header是用来设置请求头的

在接口类对象中的使用

 @POST("{id}")@FormUrlEncodedCall<ResponseBody> pathInPath(@Path("id") String path, @Header("os")String os, @Field("userName") String userName, @Field("password") String pwd);//@path注解作用于参数部分,意思是id=path帮我们替换掉@POST注解里面的参数

测试代码

   @Testpublic void pathTest() throws IOException {//实际上请求到的是https://www。httpbin.org/postResponse<ResponseBody> response = httpbinService.pathInPath("post","Android","Anglin","rssqzqyp").execute();System.out.println(response.body().string());}

运行结果

七、其他注解中的@Headers注解

@Headers是添加多个请求头或者写一个请求头都可以,写多个要用花括号{}

在接口类对象中的使用

    @Headers({"os:amdroid","version:1.0"})@POST("post")Call<ResponseBody> postWithHeaders();

测试代码

    @Testpublic void headersTest() throws IOException {Call<ResponseBody> reponse = httpbinService.postWithHeaders();System.out.println(reponse.execute().body().string());}

测试结果

可以看到我们已经成功添加了请求头平台和版本号。

八、其他注解中的@Url

@url注解作用于参数中,作用是指定完整的http地址,不像之前的注解还要自己进行拼接。

在接口类对象中的使用

   @POSTCall<ResponseBody> postUrl(@Url String url);

测试代码

   @Testpublic void urlTest() throws IOException {Response<ResponseBody> response = httpbinService.postUrl("http://www.httpbin.org/post").execute();System.out.println(response.body().string());}

测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP+servlet实现高校社团管理系统

JSPservlet实现的高校社团管理系统 &#xff0c;前后台都有&#xff0c;前台演示地址:高校社团管理系统 后台演示地址:登录 用户名:sys,密码:123456 前台功能&#xff1a;首页&#xff0c;社团列表&#xff0c;社团风采&#xff0c;社团活动&#xff0c;新闻列表&#xff0c…

阿里云新版公共实例从注册账号到创建设备生成参数教程

1 注册阿里云 打开阿里云官网&#xff0c;点击右上角的登录/注册 打开的界面按照图片输入手机号注册 注册成功后&#xff0c;登录返回第一次打开的界面&#xff0c;点击控制台 点击控制台后界面如下 点击左上角的菜单&#xff0c;弹出新窗口&#xff0c;搜索物联网平台 开通物…

springmvc(基础学习整合)

SpringMVC是Spring框架提供的构建Web应用程序的全功能MVC模块。 在SpringMVC的各个组件中&#xff0c;处理器映射器、处理器适配器、视图解析器称为SpringMVC的三大组件。 springMVC基本介绍&#xff1a; http://t.csdnimg.cn/TOzw9 MVC是一种设计思想&#xff0c;将一个应…

华为云cce容器管理中的调度策略作用

研究不深&#xff0c;但是这个还是挺重要的&#xff0c;在这里记录一下。 在cce节点集群中&#xff0c;有时候会发现有的节点实例过于饱满&#xff0c;有的又有些空&#xff0c;导致部分节点由于压力过大&#xff0c;存在崩溃的危险&#xff0c;这时候调度策略就有用了。 我这…

图扑参展高交会-全球清洁能源创新博览会

“相聚鹏城深圳&#xff0c;共享能源盛宴” 第二十五届中国国际高新技术成果交易会(简称“高交会”)于 11 月 15-18 日在深圳盛大开幕。高交会由商务部、科学技术部、工业和信息化部、国家发展改革委、农业农村部、国家知识产权局、中国科学院、中国工程院和深圳市人民政府共同…

nvm for windows使用与node/npm/yarn的配置

1 下载 nvm for windows download – github 下拉到Assets, 下载.exe文件 2 安装 安装到如下文件夹中 目录可以自己选, 可以换别的名字, 自己记住即可 新手建议全部看完再进行个人配置, 或者使用与博主一致的路径 D:\DevelopEnvironment\nvm3 配置nvm使用的镜像 node_mir…

Carbonyl ,一个可以在终端里运行的浏览器

浏览器对于我们的日常来说是使用频率比较高的一个东西。 一般来说&#xff0c;对于桌面的发行版的linux的浏览器&#xff0c;用的比较多的是Firefox浏览器。对于我们日常windows、mac等。常用的有chrome、edge等。 但是&#xff01;在终端里运行一个浏览器&#xff0c;我想大多…

SaaS模式C/S检验科LIS系统源码

适用于医院检验科实际需要的管理系统, 实现检验业务全流程的计算机管理。从检验申请、标本编号、联机采集、中文报告单的生成与打印、质控图的绘制和数据的检索与备份。通过将所有仪器自身提供的端口与科室LIS系统中的工作站点连接,实现与医院HIS系统的对接。 通过门诊医生和住…

HTML-CSS知识速查

HTML/CSS知识速查 文章目录 HTML/CSS知识速查[toc]网页的组成浏览器**为什么需要Web标准&#xff1a;** **web标准的构成&#xff1a;**HTMLHTML语法导读**1.1 HTML语法规则&#xff1a;**1.2 基本结构标签**1.3 标签的关系&#xff1a;**1. **包含关系&#xff08;Parent-Chil…

岩土工程监测新利器——振弦采集仪

岩土工程监测新利器——振弦采集仪 振弦采集仪是一种常用的岩土工程监测仪器&#xff0c;主要用于测量岩土体的振动和应变情况。它采用先进的数字信号处理技术&#xff0c;可以实时采集和处理振弦信号&#xff0c;快速准确地获取岩土体的振动和应变信息。 振弦采集仪具有以下优…

数据结构---树

树概念及结构 1.树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的 有一个特殊的结点&#xff0c…

在很多nlp数据集上超越tinybert 的新架构nlp神经网络模型

在很多nlp数据集上超越tinybert 的新架构nlp神经网络模型 网络结构图测试代码网络结构图 测试代码 import paddle import numpy as np import pandas as pd from tqdm import tqdmclass FeedFroward(paddle.nn.Layer):

TCP 基本认识

1&#xff1a;TCP 头格式有哪些&#xff1f; 序列号&#xff1a;用来解决网络包乱序问题。 确认应答号&#xff1a;用来解决丢包的问题。 2&#xff1a;为什么需要 TCP 协议&#xff1f; TCP 工作在哪一层&#xff1f; IP 层是「不可靠」的&#xff0c;它不保证网络包的交付…

SourceInsight - Relation Windows

磨刀不误砍柴工&#xff0c;你使用的工具决定了你的下限。我平时使用较多的代码编辑工具就是SourceInsight&#xff0c;这个工具速度快&#xff0c;操作方便&#xff0c;但处理非常大的项目的性能不是很理想&#xff0c;比如你要是添加整个Linux Kernel的源代码的话。 在使用SI…

什么是requestIdleCallback?和requestAnimationFrame有什么区别?

什么是requestIdleCallback? 我们都知道React 16实现了新的调度策略(Fiber), 新的调度策略提到的异步、可中断&#xff0c;其实就是基于浏览器的 requestIdleCallback和requestAnimationFrame两个API。 在 JavaScript 中&#xff0c;requestIdleCallback 是一个用于执行回调函…

Linguistic Steganalysis in Few-Shot Scenario论文阅读笔记

TIFS期刊 A类期刊 新知识点 Introduction Linguistic Steganalysis in Few-Shot Scenario模型是个预训练方法。 评估了四种文本加密分析方法&#xff0c;TS-CSW、TS-RNN、Zou、SeSy&#xff0c;用于分析和训练的样本都由VAE-Stego生产(编码方式使用AC编码)。 实验是对比在少样…

从零开始部署一个网站详细图文教程——腾讯云的服务器、SSL证书,阿里云的域名,七牛云的对象存储、CDN等

文章目录 前期准备连接服务器配置Golang环境安装配置MySQL安装配置Redis安装配置Nginx安装Node域名解析SSL证书下载启动项目配置CDN加速总结 前期准备 云服务器&#xff08;必备&#xff09;、已经备案的域名&#xff08;必备&#xff09;&#xff0c;已签发的SSL证书&#xf…

ssh-keygen(centos)

A—免密登陆—>B (1)A 机器&#xff0c;通过命令”ssh-keygen -t rsa“, 生成id_rsa,id_rsa.pub authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub &#xff1a; 生成的公钥文件 know_hosts : 已知的主机公钥…

index函数

字符串的index函数可以查找字符串里(某范围内)某子串出现的位置(从左)。字符串的index函数的语法格式&#xff1a; S.index(sub [,start [,end]]) -> int 函数的返回值为整形&#xff0c;即位置。sub为要查找的子串&#xff0c;start参数的含义是从S字符串的第start位置开始…

25. 深度学习进阶 - 权重初始化,梯度消失和梯度爆炸

文章目录 权重初始化梯度消失与梯度爆炸 Hi&#xff0c;你好。我是茶桁。 咱们这节课会讲到权重初始化、梯度消失和梯度爆炸。咱们先来看看权重初始化的内容。 权重初始化 机器学习在我们使用的过程中的初始值非常的重要。就比如最简单的wxb&#xff0c;现在要拟合成一个yha…