Android端通过Okhttp与PHP服务器进行交互并实现文件上传下载(一)

简介由于Android给我们提供的Http请求方式之一 :HttpURLConnection,使用起来非常麻烦,所以一般我们实际开发并不会用HttpURLConnection和HttpClient,而是会使用别人封装好的第三方网络请求框架,诸如:Volley,android-async-http,loopj,OkHttp等,因为网络操作涉及到 异步以及多线程,自己动手写的话,很麻烦,所以实际...
摘要由CSDN通过智能技术生成

简介

  • 由于Android给我们提供的Http请求方式之一 :HttpURLConnection,使用起来非常麻烦,所以一般我们实际开发并不会用HttpURLConnection和HttpClient,而是会使用别人封装好的第三方网络请求框架,诸如:Volley,android-async-http,loopj,OkHttp等,因为网络操作涉及到 异步以及多线程,自己动手写的话,很麻烦,所以实际开发还是直接用第三方。
  • 这里我们选择的是近来最火的开源HTTP框架——OKHttp,来实现Android客户端的工作。
  • GitHub地址:https://github.com/square/okhttp
  • 上传功能包含了一个简单的文件选择器
  • 下载功能目前做得极不完善,几乎等于没做,后续还会改进

准备工作

  1. 新建一个安卓工程
  2. 从官方网站上下载okhttp和okio的jar包
    okhttp的下载地址:http://square.github.io/okhttp/
    okio的下载地址:
    https://repo1.maven.org/maven2/com/squareup/okio/okio/1.11.0/okio-1.11.0.jar
    okio的jar包的下载地址其实就在okhttp的官网上,不一定用我给的链接去下载。
    PS.也可以通过Maven或者Gradle来导入,但因为速度太慢,所以我直接下了jar包

3.将这两个jar包导入到工程中,放在libs目录下

右键点击jar包,选择Add As Library就行了,两个包都要添加。

这里写图片描述

下面是具体代码

MainActivity.java

package com.example.ywy.mycloud1;


    import java.io.FileOutputStream;
    import java.io.IOException;

    import android.Manifest;
    import android.app.Activity;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.graphics.Bitmap;
    import android.net.Uri;
    import android.os.Build;
    import android.os.Environment;
    import android.support.v4.app.ActivityCompat;
    import android.support.v4.content.ContextCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;

    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.concurrent.TimeUnit;

    import okhttp3.Call;
    import okhttp3.Callback;
    import okhttp3.Interceptor;
    import okhttp3.MediaType;
    import okhttp3.MultipartBody;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.RequestBody;
    import okhttp3.Response;
    import okhttp3.ResponseBody;
    import okio.Buffer;
    import okio.BufferedSink;
    import okio.BufferedSource;
    import okio.ForwardingSink;
    import okio.ForwardingSource;
    import okio.Okio;
    import okio.Sink;
    import okio.Source;

    public class MainActivity extends AppCompatActivity {
   

        private OkHttpClient okHttpClient;
        
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值