编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

安卓开发OkHttpClient网络请求(一)

wxchong 2024-09-25 22:48:23 开源技术 9 ℃ 0 评论

网络请求是一个APP开发重中之重,也是一个APP存在的基础。好了,多余的不说了,看代码吧。

这是在本地搭起的开发环境,后台程序是TP6.0,服务器是小皮(phpstudy),挺好用的。

准备一个URL地址输出JSON字符串

url = "http://192.168.1.***:8000/index/getUserList"

同步GET请求,创建一个线程

Thread getDataThread = new Thread(new Runnable() {
    @Override
    public void run() {
  			//创建一个OkHttpClient对象
        OkHttpClient okHttpClient = new OkHttpClient();
  			//创建一个Request对象
        Request request = new Request.Builder().url(url).build();
  
        try {
          	//这里直接通过 execute 来执行
            Response response = okHttpClient.newCall(request).execute();
          	//这里使用 string() 方法来获得JSON字符串;
            content = response.body().string();
          	//通过 runOnUiThread方法来更新界面,这里没有进行 JSON的解析
          	//只是通过一个Textview来显示字符串,已示网络请求成功,可以获得数据
          	
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
              			//getdata是创建的一个Textview,用了显示JSON字符串
                    getdata.setText(content);
                }
            });
            System.out.println("Loading"+content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
});

getDataThread.start();   //这个非常重要,创建完线程必须开启线程

异步GET请求

OkHttpClient okHttpClient = new OkHttpClient();
Request request = new  Request.Builder().url(url).build();
//通过enqueue方法来执行异步请求
okHttpClient.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {

    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        content = response.body().string();
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                getdata.setText(content);
            }
        });
    }
});

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表