OkHttp的使用

概述

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

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

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


 在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()
 
{
 
    //...
 
});











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值