OkHttp的使用

来源:互联网 发布:能至网络瘫痪的攻击 编辑:程序博客网 时间:2024/05/21 14:45
概述

OkHttp是一个现代,快速,高效的Http client,支持HTTP/2以及SPDY,它为你做了很多的事情。纵观一眼OkHttp为你实现的诸多技术如连接池,gziping,缓存等就知道网络相关的操作是多么复杂了。OkHttp扮演着传输层的角色。

OkHttp使用Okio来大大简化数据的访问与存储,Okio是一个增强 java.io 和 java.nio的库 。

OkHttp和Okio都是Square团队开发的。


下载地址:https://github.com/mcxiaoke/android-volley
 在android studio中添加 
compile 'com.mcxiaoke.volley:library:1.0.19'

get
 //创建okHttpClient对象
OkHttpClient mOkHttpClient = new OkHttpClient();
//创建一个Request
final Request request = new Request.Builder()
                .url("www.baidu.com")
                .build();
//new call
Call call = mOkHttpClient.newCall(request); 
//请求加入调度
call.enqueue(new Callback()
        {
            @Override
            public void onFailure(Request request, IOException e)
            {
            }
 
            @Override
            public void onResponse(final Response response) throws IOException
            {
                    //String htmlStr =  response.body().string();
            }
        });  

post
 
 
Request request = buildMultipartFormRequest(
url, new File[]{file}, new String[]{fileKey}, null);
FormEncodingBuilder builder = new FormEncodingBuilder();
builder.add("username","暗暗");
 
Request request = new Request.Builder()
.url(url)
.post(builder.build())
.build();
mOkHttpClient.newCall(request).enqueue(new Callback(){});

上传文件

File file = new File(Environment.getExternalStorageDirectory(), "balabala.mp4");
 
RequestBody fileBody = RequestBody.create(MediaType.parse("application/octet-stream"), file);
 
 
 
RequestBody requestBody = new MultipartBuilder()
 
     .type(MultipartBuilder.FORM)
 
     .addPart(Headers.of(
 
          "Content-Disposition", 
 
              "form-data; name=\"username\""), 
 
          RequestBody.create(null, "暗暗"))
 
     .addPart(Headers.of(
 
         "Content-Disposition", 
 
         "form-data; name=\"mFile\"; 
 
         filename=\"wjd.mp4\""), fileBody)
 
     .build();
 
 
 
Request request = new Request.Builder()
 
    .url("http://192.168.1.103:8080/okHttpServer/fileUpload")
 
    .post(requestBody)
 
    .build();
 
 
 
Call call = mOkHttpClient.newCall(request);
 
call.enqueue(new Callback()
 
{
 
    //...
 
});











0 0
原创粉丝点击