okhttp的建立

先讲一下前面的http部分:

webview控件我们可以通过创建一个webview :WebView webView=(WebView) findViewById(R.id.web_view);

webView.getSettings().setJavaScriptEnabled(true);//可以设置浏览器的属性,这里通过调用方法使webview支持javascript;

webView.setWebView(new WebViewClient());//传入webviewclient实例使目标网页仍然在webview当中显示;

webView.loadUrl("http://www.baidu.com");//将网址传入


需要修改权限<uses-permission android:name="android.permission.INTERNET">


首先,先创建一个OkHttpClient 的实例     

同时要添加一个包implementation 'com.squareup.okhttp3:okhttp3:3.4.1'

OkHttpClient client=new OkHttpClient();
Request request=new Request.Builder().url("http://www.baidu.com").build()//发起一条请求就要创建一个request对象
并且设置目标的网络地址;
Response response=client.newCall(request).execute();//创建一个call对象调用execute方法发送请求并获取数据。
String responseData=response.body().string();//获取返回的数据
 
然后通过按键获取事件用多线程启动网络发送数据请求
new Thread(new Runnable())然后要用catch 来捕捉异常。
然后UI界面只能出现在主界面中
所以还要创建一个显示ui界面的函数即runOnUiThread(new Runnable())
json解析网络格式:
JSONArray jasonArray=new JSONArray(String data)
然后遍历数组JSONObject object=JSONArray.get(position);
String name=object.getString("name");
String id=object.getString("id"):
还可以使用gson来解析json:引入implementation'com.google.code.gson:gson:2.6'
Gson gson=new Gson()
Class T=gson.fromJson(jsonData,T.class)
还可以new TypeToken<class>(){}.getType();
java回调机制来处理服务器来不及返回数据的问题
public interface HttpCallbackListener{
void onFinish(String response);
void onError(Exception e);}
public class HttpUtil{
public static void sendOKHttpRequest(String address,okhttp.Callback callback){
     OkHttpClient client;
Request request=new Request.Builder().build();
client.newCall(request).enqueue(callback);}}
调用函数HttpUtil.sendOkHttpRequest(address,new okhttp3.Callback(){
@Override
public void onResponse(Call call,Response response)throws IOException{
String responseData=response.body().string();}
@Override
public void onFailure(Call call,IOException e){}
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值