Android OKhttp使用(下载和上传文件)

这篇具有很好参考价值的文章主要介绍了Android OKhttp使用(下载和上传文件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android okhttp的使用

首先在build.gradle中引入okhttp

    implementation 'com.squareup.okhttp3:okhttp:3.14.2'
    implementation 'com.squareup.okio:okio:1.17.4'

下面是demo(用okthttp下载网络上的资源)

//下载路径,如果路径无效了,可换成你的下载路径
final String url = "http://sancloud.com/resource/" + file;
Request request = new Request.Builder().url(url).build();
new OkHttpClient().newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        // 下载失败
        e.printStackTrace();
        Log.i("DOWNLOAD","download failed");
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        Sink sink = null;
        BufferedSink bufferedSink = null;
        String filename = url.substring(url.lastIndexOf("/") + 1);
        //这是里的mContext是我提前获取了android的context
        File localFile = mContext.getFilesDir()+File.separator+filename 
        try {
            sink = Okio.sink(localFile);
            bufferedSink = Okio.buffer(sink);
            bufferedSink.writeAll(response.body().source());
            bufferedSink.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (bufferedSink != null) {
                bufferedSink.close();
            }
        }
    }
});

用okthttp将资源上传至网络文章来源地址https://www.toymoban.com/news/detail-505535.html

        // 获得输入框中的路径
        File file = new File(path);
        OkHttpClient client = new OkHttpClient();
        // 上传文件使用MultipartBody.Builder
        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                // 提交普通字段
                .addFormDataPart("id", String.valueOf(id)) 
                // 提交文件,第一个参数是键(key="第一个参数"),第二个参数是文件名,第三个是一个RequestBody
                .addFormDataPart("file", file.getName(), 
               RequestBody.create(MediaType.parse("multipart/form-data"), file)) 
                .build();
        // POST请求
        Request request = new Request.Builder()
                .url("http://sancloud.com:9111/MobileCenter/upload")
                .post(requestBody)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                LogUtils.w("文件上传出现问题");
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                LogUtils.i("log文件上传成功");
            }
        });

到了这里,关于Android OKhttp使用(下载和上传文件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用postman实现文件上传与下载

    文件上传:  1. 设置KEY值为Content-Type, VALUE值为multipart/form-data 2. 选择Body ,类型为form-data,KEY值下拉选择为file,这样VALUE就会出现选择按钮,最重要的是,KEY值的file需要手动添加,不然后台收到的为null 文件下载:  1. 设置为GET请求 2.将文件下载时Header的Content-Type取消勾选

    2024年02月09日
    浏览(38)
  • 【SpringMVC】文件上传与下载、JREBEL使用

    目录 一、引言 二、文件的上传 1、单文件上传 1.1、数据表准备 1.2、添加依赖 1.3、配置文件 1.4、编写表单 1.5、编写controller层 2、多文件上传 2.1、编写form表单 2.2、编写controller层 2.3、测试 三、文件下载 四、JREBEL使用 1、下载注册 2、离线设置 为什么要使用文件的上传下载?

    2024年02月07日
    浏览(40)
  • C# 使用FTP上传文件、下载文件,实现数据传输

    上传文件的方法调用: 下载文件方法:

    2024年02月14日
    浏览(48)
  • Java 使用OSS 文件上传+下载 简单入门

    官方SDK文档:Java对象/文件_对象存储-阿里云帮助中心           阿里云对象存储OSS(Object Storage Service)为您提供基于网络的数据存取服务。使用OSS,可以通过网络随时存储和调用包括文本、图片、音视频在内的各类数据文件;可以通过OSS控制台创建Bucket,并将文件上传

    2024年02月10日
    浏览(46)
  • 【SpringMVC】| 使用SpringMVC实现文件上传 | 下载功能

    SpringMVC是一个Web框架,提供了许多有用的功能,包括文件上传和下载。通过SpringMVC上传和下载文件,您可以允许用户上传文件,以便将它们存储在服务器上,或者允许用户从服务器上下载文件。这些都可以为您的应用程序添加有用的功能,例如: 允许用户上传和共享文件 -

    2024年02月02日
    浏览(44)
  • 使用hutool进行ftp文件下载和上传

    2024年02月11日
    浏览(43)
  • 使用nio代替传统流实现文件上传和下载功能

    1.文件下载 2.文件上传

    2024年02月13日
    浏览(42)
  • Linux中使用SCP命令进行上传或者下载文件

    SCP(Secure Copy Protocol)是一种基于SSH的在网络上安全传输文件的文件传输协议,使用SSH(Secure Shell)加密技术来保证数据在传输过程中的安全性。SCP 命令是Linux主机之间进行上传或者下载文件的最常用的命令,这是一个功能非常强大的工具,可以在任意二个主机之间快速的上传与

    2024年02月16日
    浏览(50)
  • SpringMVC之文件上传下载以及jrebel的使用

    目录 一、文件上传 1.1 导入依赖 1.2 配置文件上传解析器 1.3 配置服务器存放文件地址 1.3.1 点击编辑Configurations 1.3.2 将项目部署至tomcat服务器上 1.3.3 配置相对路径 1.4 导入PropertiesUtil工具类 1.5 编写resource.properties 1.6 添加sql 1.7 编写PageController类 1.8 编写主页展示界面 1.9 编

    2024年02月09日
    浏览(41)
  • Linux——如何使用sftp命令轻松上传和下载文件

    对于Linux用户来说,通过sftp命令进行文件上传和下载是一个非常常见的操作。SFTP是SSH File Transfer Protocol的简写,它是基于安全shell(SSH)协议的一种文件传输协议,可以实现加密传输,防止网络窃听和篡改。本文将向您介绍如何使用sftp命令轻松上传和下载文件。 一、安装和配

    2024年03月09日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包