HTTP上传 与文件下载相比,文件上传的场合不是很多,通常用于上传用户头像、朋友圈发布图片/视频动态等等,而且上传文件需要服务器配合,所以容易被app开发者忽略。...HttpURLConnection上传 很可惜Android没有提供专门的文件上传工具类,所以我们要自己写代码实现上传功能了。...上传 Retrofit是网络请求框架中的后起之秀,它的项目地址在 https://github.com/square/retrofit 。...据官方介绍,Retrofit是一个类型安全的REST客户端,用于Android平台。...不管怎样,作为一个技术手段,我们还是温习一下FTP上传文件的用法,java上可导入commons-net-3.3.jar,该库是集成了常见的网络通讯协议,包括但不限于:ftp、telnet、smtp、pop3
原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、...与其他开源请求库对比 除了Retrofit,如今Android中主流的网络请求框架有: Android-Async-Http Volley OkHttp 下面是简单介绍: 一图让你了解全部的网络请求库和他们之间的区别...使用介绍 使用 Retrofit 的步骤共有7个: 步骤1:添加Retrofit库的依赖 步骤2:创建 接收服务器返回数据 的类 步骤3:创建 用于描述网络请求 的接口 步骤4:创建 Retrofit...@Multipart 作用:表示发送form-encoded的数据(适用于 有文件 上传的场景) 每个键值对需要用@Part来注解键名,随后的对象需要提供值。...数据转换、线程切换的操作 步骤7:处理服务器返回的数据 接下来,我们一步步进行Retrofit的使用。
之前的一篇博客讲了Retrofit实现带进度下载的实现,算是Retrofit使用的“姐姐篇”,那今天我们就讲讲它的“妹妹篇“——用Retrofit实现带进度上传文件!...谢谢~ 还是先上效果图: ? 上传图片效果 ?..." /> android:name="android.permission.READ_EXTERNAL_STORAGE" /> 要实现将文件上传,我们需要网络权限和内存的读写权限...其中我们在上传进度的回调中返回进度的百分比,在此可以将进度显示在控件上。如果你还有一些个性化的需求,可以自行添加。 四、网络工具类准备 对Retrofit进行简单封装。...uploaded 上; 5、通过BufferedSink对象的write方法将buffer里的内容写入缓存,这是上传最重要的一步!
'com.squareup.retrofit2:adapter-rxjava:2.1.0' 当然也别忘记添加网络权限 android:name="android.permission.INTERNET...当然你也可以选择android-async-http和Volley,但为什么选择Retrofit?...实际上,开发者可以自己决定消息体的格式,只要后面发送的HTTP请求满足上面的格式就可以了。 但是,数据发送出去后,还要服务器解析成功才有意义。一般服务器都内置了自动解析常见数据格式的功能。...事实上现在已经基本都是都是这种方式了,来通知服务器消息体是序列化后的JSON字符串。由于JSON规范的流行,除了低版本的IE之外的现在主流浏览器都原生支持JSON。...服务器将MIME标识符放入传送的数据中来告诉浏览器使用哪个插件读取相关文件。 每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。
很早就开通了掘金上发表文章权限,但一直没有在掘金上写,都是在简书上面写好,然后偷懒在掘金上直接就网址分享链接。O(∩_∩)O~这次就上来写了。 ?...需求一:上传中文 那天。我要做一个需求,就是进行一个转账(转给这个账号下已经添加的联系人) ? 那不是跟登录的post类似么。把这些参数都提交过去给服务器,然后告诉我提交成功与否就OK了。...需求二:个人中心要添加更改头像 一般来说分为三步: 上传头像都是调用系统的相机或者直接选择手机已经有的图片 进行图片裁剪 上传图片到服务器,并把本地的头像替换 我们一步步来处理: 第一步: 我们既然要选择相机或者是选择手机里面的图片...uploadPic(mBitmap);//上传图片到服务器 } } 复制代码 这里调用系统图片选择器遇到的坑,大家可以看下这篇文章,写的很好哈。。。...这里我是上传服务器前,就先把获得的新图片赋给了本地的ImageView,也可以上传服务器,然后后台返回成功信息后再去操作,把界面上的ImageView设置为新的图片。。这里大家根据不同要求改。
RequestBody;先调查好后台接受的body类型。...onFailure(Call call, final Throwable t) { //... } }); 信任所有服务器的...ssl 并不推荐这么做 public class SSLUtils { /** * @return 信任所有服务器 */ public static SSLSocketFactory...popSubmitSuccessDialog(); } else { LL.e("上传用户反馈失败...OkHttp + Retrofit 使用示例 Android OkHttp + Retrofit 取消请求的方法 Android OkHttp + Retrofit 下载文件与进度监听 Android
原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、...与其他开源请求库对比 除了Retrofit,如今Android中主流的网络请求框架有: Android-Async-Http Volley OkHttp 下面是简单介绍: 一图让你了解全部的网络请求库和他们之间的区别...使用介绍 使用 Retrofit 的步骤共有7个: 步骤1:添加Retrofit库的依赖 步骤2:创建 接收服务器返回数据 的类 步骤3:创建 用于描述网络请求 的接口 步骤4:创建 Retrofit...@Multipart 作用:表示发送form-encoded的数据(适用于 有文件 上传的场景) 每个键值对需要用@Part来注解键名,随后的对象需要提供值。...) 封装了 数据转换、线程切换的操作 步骤7:处理服务器返回的数据 接下来,我们一步步进行Retrofit的使用。
原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 ?...App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作 在服务端返回数据之后,OkHttp...将原始的结果交给 Retrofit,Retrofit根据用户的需求对结果进行解析 除了Retrofit,如今Android中主流的网络请求框架有: Android-Async-Http Volley...一图让你了解全部的网络请求库和他们之间的区别! ?...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建接收服务器返回数据的类
原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 ?...App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作 在服务端返回数据之后,OkHttp...一图让你了解全部的网络请求库和他们之间的区别! ?...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建 接收服务器返回数据...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建 接收服务器返回数据
Retrofit2 是目前Android开发主流的网络库,RxJava2也是目前开发者使用的比较多用来更优雅实现异步的库,因为最近业务需求有用到这两个库,就简单分享下它的一个实际使用场景—上传文件 [TOC...具体配置文件在根目录下的config.gradle ext { android = [ compileSdkVersion: 25, buildToolsVersion...客户端类,获取它的单例然后去调用它的上传文件的方法,可以看到我这里封装了两个方法,uploadFile是上传单个文件,uploadFiles方法上传多个文件....构造MultipartBody 上一步定义好了上传的接口,我们最终是要去构造MultipartBody,这一块就需要跟后台同学进行沟通了,根据接口定义来实现,这里是我们的实现: /** * MultipartBuilder...LogUtil.d(String.valueOf(progress)); } }); 笔者这里是上传到文件服务器
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 *本篇文章视频 慕课网之Android依赖管理与私服搭建 1、Android引入依赖的多种方式 引入方式一 AS切换...AS默认使用的是**jcenter** 如何引入仓库中的jar 下面以引入retrofit为例 引入仓库中的jar-[retrofit](http://square.github.io.../retrofit) 或者直接在对应项目Module的build.gradle中dependencies节点添加 compile 'com.squareup.retrofit2:retrofit...节点添加上传行为 定义上传行为 解析: compile 'com.android.support:appcompat-v7:24.2.1' pom.version = "24.2.1...aar到Maven私服 点击uploadArchives自动上传 上传aar到服务器 刷新页面重新查看 2.2、引用私服中的Module 在需要依赖Module的build.gradle
说道RxJava+Retrofit 的组合 大家基本不陌生,先介绍一下Retrofit Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp...@Body 以 Post方式 传递 自定义数据类型 给服务器 @Field & @FieldMap 发送 Post请求 时提交请求的表单字段,与 @FormUrlEncoded 注解配合使用 @Part...& @PartMap 发送 Post请求 时提交请求的表单字段,与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景,与 @Multipart 注解配合使用...实例 上传文件+字段的时候 必须变为RequestBody 参数 方可才能上传 Retrofit retrofit2 = new Retrofit.Builder() ....String cid, @Field("page") String page); 第二配置 .addConverterFactory(GsonConverterFactory.create()) 这个配置是将服务器返回的
一.OkHttp的介绍和基本用法 OkHttp是一个流行的开源Java和Android应用程序的HTTP客户端。...,那如果要上传文件给服务器呢?...的介绍和基本使用 Retrofit是一个基于OkHttp的强大且易于使用的网络请求库,用于在Android和Java应用程序中进行网络通信。...3.文件上传和下载: Retrofit支持文件上传和下载,并提供了进度回调机制,方便跟踪上传和下载进度。 ...Retrofit的基本用法如下: 1.添加依赖项:在您的Android或Java项目中的build.gradle文件中添加Retrofit的依赖项 implementation 'com.squareup.retrofit2
上一篇文章讲了RxJava,这一篇当然就该讲Retrofit了,参考资料: https://blog.csdn.net/gumufuyun/article/details/83619879 1.Retrofit...简介 Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装。...的转换器 implementation 'com.squareup.retrofit2:converter-gson:2.0.2' 当然还有网络请求权限: android...,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。...使用方式:@Header作用于方法的参数;@Headers作用于方法 Body 作用:以 Post方式 传递 自定义数据类型 给服务器 特别注意:如果提交的是一个Map,那么作用相当于 @Field
简介 在 Android 开发中,网络请求是一个极为关键的部分。Retrofit 作为一个强大的网络请求库,能够简化开发流程,提供高效的网络请求能力。...通过 Retrofit,我们轻松发起网络请求,还能将服务器返回的数据转换为所需的格式,如 JSON 或 XML。...Retrofit 支持文件上传和下载功能。...其核心原理为使用 OkHttp 发送网络请求,通过动态代理将定义的 Java 接口转化为 HTTP 请求,然后将请求发送给服务器。...反射与注解处理器 Retrofit 利用 Java 的反射机制,通过读取接口方法上的注解信息,来获取请求的类型、URL、参数等信息。这些注解信息会在编译时被解析和处理,生成相应的代码用于构建请求。
是在哪个类里请求就在哪个类里存放,还是统一放在一个专门存地址的类中呢? 我在学习Android期间就是哪里有请求就放哪里,后来有人告诉我要集中存放。...需要注意的是converter-gson和retrofit版本号应为一致,在这里我都用2.1.0 创建Bean 创建一个JavaBean,用于解析服务器返回数据。...不一样的上传方式。...看下我这几个图,整理一下思路吧 ?.../p/acfefb0a204f https://futurestud.io/blog/retrofit-getting-started-and-android-client 小说看多了,起的名有些怪。
前言 在上一篇Android网络编程(九)Retrofit2前篇[基本使用]中我们了解了Retrofit的最基本的GET方式访问网络的写法以及请求参数的简单介绍。...接下来请求网络的代码如下所示。 ? 传输数据类型Json字符串:@Body 我们也可以用POST方式将Json字符串作为请求体发送到服务器,请求网络接口代码为: ?...用@Body这个注解标识参数对象即可,retrofit会将Ip对象转换为字符串。 ? 请求网络的代码基本上都是一致的: ? 运行程序用Fiddler抓包,如下图所示。 ?...多个文件上传:@PartMap ? 和单文件上传是类似的,只是使用Map封装了上传的文件,并用@PartMap注解来标示起来。其他的都一样,这里就不赘述了。...3.消息报头Header Http请求中,为了防止攻击或是过滤掉不安全的访问或是添加特殊加密的访问等等,用来减轻服务器的压力和保证请求的安全,通常都会在消息报头中携带一些特殊的消息头处理。
以奶德为例,在服务器的对应目录下,就会有 Eddard_Stark.png 和 Eddard_Stark.html 这两个文件。 这一步其实是整个项目最麻烦的地方。...刚开始我上传到了 GitHub,但发现经常会发生灵异事件,导致数据无法访问或者速度超慢,后来又上传到了九牛云。 这部分内容大家看一下就好了,毕竟不是常规的做法。...下面就简单讲一下目前比较流行的两个框架 Retrofit 2 和 Realm,来完成数据的获取和保存。...Retrofit 2 Retrofit 的厉害之处我就不多说了,网上的教程很多的,我只讲最最简单的用法。...配置 在 Module 的 build.grade 里添加依赖: compile "com.squareup.retrofit2:retrofit:${RETROFIT_VERSION}" compile
现在Android+SSH服务器非常流行,因为最近业务需要实现利用Android发表博客的需求,这个时候就需要上传多个文件到服务器中。因为现在框架都非常好用,不需要自己从底层自己开始搭建框架。...网络上面的大多数都是Android+Servlet实现的Android上传功能。...这里因为我用的是SSH框架进行开发的,所以当然要用Struts2来代替Servlet的功能来实现文件接收的功能,Android中利用xutils框架实现上传的功能。...Android端的核心代码: Android端用的是xutils框架进行文件传输的,这里就不多介绍xutils框架了,有兴趣的可以自己去Google或者百度。...到这里多个文件上传的功能就完成了 如果大家按这个步骤还是出问题,可以下载我成功的一个demo,这是下载地址:点击打开链接
前言 Retrofit API用法和介绍的文章实在是多的数不清,也有很多介绍其内部原理的,但是看过之后,还是让很多人云里雾里, 花了堆的UML图,看完就忘了,本篇文章旨在通过自我实现一个模仿的Retrofit...回顾 Retrofit2.0是SQUARE美国一家移动支付公司最新发布的在Android平台上http的resultful访问客户端,具体简单用法列举!...测试结果 数据成功请求到,并且被框架自动解析返回JavaBean 既然功能和Retrofit很相似,和Retrofit几乎一摸一样,不妨我们再看看的工程配置 : compile 'com.loopj.android...:android-async-http:1.4.9' compile 'com.alibaba:fastjson:1.2.12' 果不其然,并没有关于Retrofit的任何依赖,说明我们的Tamic并无投机取巧...本次实现只关注Retrofit整体了一个流程思想,其他Retrofit的功能其实就通过以上思想来扩展的,设置解析工厂,返回内容格式,文件上传,下载等,本次实现并没有深入模仿,因为Retrofit整个流程思想比较系统