首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Retrofit解析2之使用简介

map形式添加查询参数,即请求参数,参数键和值都通过String.valueOf()转换为String格式。...、@Body:作用于方法参数 使用@Body 注解定义参数不能为null 当你发送一个post或put请求,但是又不想作为请求参数或表单方式发送请求时,使用该注解定义参数可以直接传入一个实体类,...enctype: 表单数据提交时使用编码类型,默认使用"pplication/x-www-form-urlencoded",如果是使用POST请求,则请求头中content-type指定值就是该值...4、根据form表单中action属性和method属性向指定地址发送数据 3、提交方式 1、get:表单数据会被encodeURIComponent后参数形式:name1=value1&name2..."multipart/form-data",则以消息形式发送给服务器。

4.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

Retrofit2 & RxJava2实现单文件和多文件上传

Retrofit2 是目前Android开发主流网络库,RxJava2也是目前开发者使用比较多用来更优雅实现异步库,因为最近业务需求有用到这两个库,就简单分享下它一个实际使用场景—上传文件 [TOC...Observable uploadFile(@Url String url, @Body MultipartBody body); } 这里就是Retrofit定义接口形式...,通过注解来表示各个参数,@POST表示发起post请求,@Url表示这是个请求地址,@Body表示这是请求体,关于Retrofit各种注解使用这里不多说,大家可以自行了解。...、失败和进度状态,所以需要去自定义: /** * 上传文件请求body...总结 通篇代码实现很多,但可以看到使用Retrofit2和RxJava2结合起来使用还是挺方便,再也不用自己去控制线程切换了,也不用去关注http具体实现,少写了不少代码,实现起来也优雅不少,希望这篇文章能帮助到大家

2.6K40

Android MVP+RxJava+Retrofit (2) RxJava+Retrofit

", Toast.LENGTH_SHORT).show(); } }); 接下来开始介绍一下注解了上面我所使用 @POST 注解发送了POST请求,Retrofit...、@HEAD注解作用 及 更多功能拓展 具体使用:通过属性method、path、hasBody进行设置 第二类 标记 @FormUrlEncoded 请求体是是是一个表单数据 表示发送form-encoded...数据,每个键值对需要用@Filed来注解键名,随后对象需要提供值 @Multipart 请求体是一个支持文件上传表单数据 表示发送form-encoded数据(适用于 有文件 上传场景),...每个键值对需要用@Part来注解键名,随后对象需要提供值 第三类 网络请求参数 @Header & @Headers 添加请求头 &添加不固定请求头 @Body Post方式 传递 自定义数据类型...给服务器 @Field & @FieldMap 发送 Post请求 时提交请求表单字段,与 @FormUrlEncoded 注解配合使用 @Part & @PartMap 发送 Post请求 时提交请求表单字段

71530

Retrofit2 学习总结

先看看如何使用,如何进行一个简单Get/Post请求 Retrofit2 入门 首先在build.gradle中添加如下代码,添加Retrofit2库 compile 'com.squareup.retrofit2...对象(创建请求服务) AppURL url= retrofit.create(AppURL.class); 用AppURL对象得到具体请求对象(获取请求服务方法 ) Call...//使用 Call call=url.send(); 这里UserInfo就是要发送实体,Retrofit2 会自动转成Gson 学到这里,一般网络请求都可以了进行,可以应付一阵子了...还有一些要求较高请求,请看下节。 Retrofit2 大成 如果看到这里,相信对Retrofit2基本请求会用了,那么这节就说一说其他网络请求。...表单(FormUrlEncoded) 我们可以使用@FormUrlEncoded注解来发送表单数据。使用 @Field注解和参数来指定每个表单项Key,value为参数值。

1.1K20

你真的会用Retrofit2吗?Retrofit2完全教程

当然你也可以自己借助 json-server 或 最新开源Parse 搭建一个REST API,不过都需要安装Node.js,有兴趣可以去试试。 接口列表: ?...注: Retrofit2 baseUlr 必须 /(斜线) 结束,不然会抛出一个IllegalArgumentException,所以如果你看到别的教程没有 / 结束,那么多半是直接从Retrofit...22个注解,为帮助大家更好理解我将这22个注解分为三类,并用表格形式展现出来,表格上说得并不完整,具体见源码上例子注释。...如果你在注解中提供url是不完整url,且不以 / 开头,则请求url为baseUrl+注解中提供值 如果你在注解中提供url是不完整url,且 / 开头,则请求url为baseUrl主机部分...,所以就直接用了ExampleXX形式,不过在项目中千万不要使用这种方式,一定要好好命名,做到见名知意。

2.2K70

Form 表单数据编码、解码--encodeURIComponent、URLSearchParams、FormData

开始之前,先罗列一下我们日常开发中经常用到“内容类型 – Content-Type,用于指定资源MIME类型 media type ,定义网络文件类型和网页编码,决定浏览器将以什么形式、什么编码读取这个文件...> 注意: 由于历史原因,表单使用 Url 编码实现并不符合最新标准,将空格处理成了 + 。...业务中,我们通常不是通过 action 方式发送,而是通过 ajax/fetch 方式进行封装处理,此时需要对数据进行编码或解码操作。...如果此时需要通过 ajax/fetch 发送请求,可以借助 FormData 进行封装数据。...如果送出时编码类型被设为 "multipart/form-data",它会使用和表单一样格式。

1.9K20

Form 表单数据编码、解码--encodeURIComponent、URLSearchParams、FormData

开始之前,先罗列一下我们日常开发中经常用到“内容类型 – Content-Type,用于指定资源MIME类型 media type ,定义网络文件类型和网页编码,决定浏览器将以什么形式、什么编码读取这个文件...> 注意: 由于历史原因,表单使用 Url 编码实现并不符合最新标准,将空格处理成了 + 。...业务中,我们通常不是通过 action 方式发送,而是通过 ajax/fetch 方式进行封装处理,此时需要对数据进行编码或解码操作。...如果此时需要通过 ajax/fetch 发送请求,可以借助 FormData 进行封装数据。...如果送出时编码类型被设为 "multipart/form-data",它会使用和表单一样格式。

1.2K10

【转-干货】Retrofit2.0使用总结及注意事项

Retrofit是由Square公司出品针对于Android和Java类型安全Http客户端,如果看源码会发现其实质上就是对okHttp封装,使用面向接口方式进行网络请求,利用动态生成代理类封装了网络接口请求底层...,其将请求返回javaBean,对网络认证 REST API进行了很好对支持此,使用Retrofit将会极大提高我们应用网络体验。...在Retrofit1中使用是RestAdapter,而Retrofit2使用Retrofit实例,之前setEndpoint变为了baseUrl。...Retrofit2通过OKHttp拦截器拦截http请求进行监控,重写或重试等,包括日志打印等。...无网读缓存,有网根据过期时间重新请求 一般情况下我们需要达到缓存效果是这样: 没有网或者网络较差时候要使用缓存(统一设置) 有网络时候,要保证不同需求,实时性数据不用缓存,一般请求需要缓存(单个请求

5.3K30

Django之视图层与模板层

编码格式1(默认编码格式):enctype="application/x-www-form-urlencoded" 编码格式2(使用form表单上传文件时只能用该编码):enctype="multipart...1,如果无需上传文件,还是推荐使用更为精简编码格式1 我们除了可以采用form表单向django提交数据外,还可以采用ajax技术,ajax可以提交数据格式有:1、编码 格式1 2、编码格式2...HTTP_USER_AGENT —— 客户端使用软件版本信息 QUERY_STRING —— 单个字符串形式查询字符串(未解析过形式)。 REMOTE_ADDR —— 客户端IP地址。...如果一个响应需要根据请求是否是通过AJAX 发起,并且你正在使用某种形式缓存例如Django cache middleware, 你应该使用 vary_on_headers('HTTP_X_REQUESTED_WITH...标签用来给一个复杂变量名起别名,如果变量值来自于数据库,在起别名后只需要使用别名即可,无需每次都向数据库发送请求重新获取变量值,这里需要说明是别名只能在with标签内部使用,如果在外部还是要用原名

9.2K10

Django 视图层

,则将这些数据封装成QueryDict对象 POST请求可以带有空POST字典,如果通过HTTP POST方法发送一个表单,但是表单中没有任何数据,QueryDict对象依然会被创建,因此,...,可以通过修改他来改变表单数据编码,任何随后属性访问将使用编码方式. 7.HttpRequest.META 一个标准Python字典,包含所有的HTTP首部,具体头部信息取决于客户端和服务端..., 注意,FILES只有在请求方法为POST且提交带有enctype="multipart/form-data"情况下才会包含数据。...如果一个响应需要根据请求是否是通过AJAX 发起,并且你正在使用某种形式缓存例如Django cache middleware, 你应该使用 vary_on_headers('HTTP_X_REQUESTED_WITH...,并返回一个渲染后HttpResponse对象 参数: request: 用于生成响应请求对象 template_name: 要使用模板完整名称,可选参数 context

1.7K20

解析HTTP报文

常用内容编码有四种:gzip(GNUzip)、compress(UNIX系统标准压缩)、deflate(zlib)、identity(不进行编码)分割发送分块传输编码,在HTTP通信过程中,请求编码实体资源尚未全部传输完成之前...多部分对象集合包含对象有:multipart/form-data:在Web表单文件上传时使用;multipart/byteranges:状态码 206(Partial Content,部分内容)响应报文包含了多个范围内容时使用...使用boundary字符串来划分多部分对象集合指明各类实体。...内容协商会响应资源语言、字符集、编码方式等作为判断基准。...但对用户来说,浏览器发送信息作为判定依据,并不一定能筛选出最优内容。客户端驱动协商(Agent-driven Negotiation),由客户端进行内容协商方式。

1.6K30

python三方库之requests-快速上手

但建议尽量避免传递unicode类型值 更复杂POST请求 发送form-encoded数据 给data参数传递一个字典对象: >>> payload = {'key1': 'value1', 'key2...': 'value2'} >>> r = requests.post("https://httpbin.org/post", data=payload) 如果有多个值对应一个键,可以使用由元组组成列表或者值是列表字典...form-encoded数据 如果传递是字符串而非字典,将直接发送该数据: >>> import json >>> url = 'https://api.github.com/some/endpoint...b) 在请求使用json参数会改变Content-Type值为application/json POST一个多部分编码(Multipart-Encoded)文件 上传文件: >>> url = '...强烈建议二进制模式打开文件,因为Requests可能以文件中字节长度来设置Content-Length 响应状态码 Response对象status_code属性可以获取响应状态: >>> r =

61240

这次,我们聊聊ajax创建过程

项目中,一直在使用是jQuery中封装好了$.ajax()方法,这个方法大家一定非常熟悉了,具体使用格式参数等这里不再赘述,今天要详细说是ajax创建过程。...因此,服务器必须有程序来读取发送过来原始数据,并从中解析出有用部分。不过,我们可以使用XHR来模仿WEB表单提交。...首先将Content-Type头部信息设置成:application/x-www-form-urlencoded,也就是表单提交时内容类型,其次是以适当格式创建一个字符串,发送HTTP请求。...2.4、提交到服务器参数必须经过 encodeURIComponent() 方法进行编码,实际上在参数列表”key=value”形式中,key 和 value 都需要进行编码,因为会包含特殊字符。...3.3、在readystatechange事件中,先判断响应是否接收完成,然后判断服务器是否成功处理请求,xhr.status 是状态码,状态码2开头都是成功,304表示从缓存中获取。

4.1K690

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券