关于自己对okhttp的理解-----get请求同步用法

通过在网上查看资料,我现在把自己理解的okhttp作为笔记记录下来,方便以后查看,如果哪里有些的不对,还请大家多多指教。

首先介绍okhttp的同步get请求用法

第一步导入jar包:

compile 'com.squareup.okhttp3:okhttp:3.6.0'

第二步 获取reques请求t对象:

Request request=new Request.Builder().url(url).build();

第三步获取response响应对象

Response response=okhttpclient.newCall(request).execute();

第四部获取responseBody对象

response.body();

第五步获取请求网络返回的数据   有三种

字符串类型

responseBody.string();
字节数组类型

responseBody.bytes();
输入流

responseBody.byteStream();





整体代码是这样的

 
 
package com.example.administrator.testokhttp ;
import android.util.Log;
import java.io.IOException;import java.io.InputStream;
import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;import okhttp3.ResponseBody;
/** * Created by Zhaoqingzhi on 2017/2/16. */
public class OkhttpUtils { private static final OkHttpClient okhttpclient=new OkHttpClient();
/** * 获取请求对象request * @param url * @return */ private static Request getRequestFromUrl(String url){ Request request=new Request.Builder().url(url).build(); return request; }
/**
* 获取响应对象 * @param url * @return * @throws IOException */ private static Response getResponseFromUrl(String url) throws IOException { Request request=getRequestFromUrl(url); Response response=okhttpclient.newCall(request).execute(); return response; }
/**
* 获取responseBody对象 * @param url * @return * @throws IOException */ private static ResponseBody getResponseBodyFromUrl(String url) throws IOException { Response response=getResponseFromUrl(url); if(response.isSuccessful()){ return response.body(); } return null; }
/**
* 通过网络请求获取字符串 * @param url * @return * @throws IOException */ public static String loadStringFromUrl(String url) throws IOException { ResponseBody responseBody=getResponseBodyFromUrl(url); if(responseBody!=null){ return responseBody.string(); } return null; } /** * 通过网络请求获取字符串 * @param url * @return * @throws IOException */ public byte[] loadByteFromUrl(String url) throws IOException { ResponseBody responseBody=getResponseBodyFromUrl(url); if(responseBody!=null){ return responseBody.bytes(); } return null; } /** * 通过网络请求获取输入流 * @param url * @return * @throws IOException */ public InputStream loadStemFromUrl(String url) throws IOException { ResponseBody responseBody=getResponseBodyFromUrl(url); if(responseBody!=null){ return responseBody.byteStream(); } return null; }}

在activty中调用是这样:


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Thread thread=new Thread(runnable);
    thread.start();
}

private Runnable runnable=new Runnable() {
    @Override
    public void run() {
        try {
            String str= OkhttpUtils.loadStringFromUrl("url");
            Log.e("tag=",str+"----");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值