Android使用okhttp通信的方法

 更新时间:2025年04月26日 09:06:13   作者:刘宏缔的架构森林  
这篇文章主要介绍了Android:使用okhttp通信的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

一,安装第三方库:

1,库地址:

https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp

2,安装

在build.gradle的dependencies中增加一行:

implementation 'com.squareup.okhttp3:okhttp:4.12.0'

如下:

dependencies {
    implementation libs.appcompat
    implementation libs.material
    implementation libs.activity
    implementation libs.constraintlayout
    testImplementation libs.junit
    androidTestImplementation libs.ext.junit
    androidTestImplementation libs.espresso.core
    implementation 'com.squareup.okhttp3:okhttp:4.12.0'
}

然后点击 sync now

二,配置权限:

在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.INTERNET" />

否则会报以下错误:

java.lang.SecurityException: Permission denied (missing INTERNET permission?)

三,代码:

package com.example.okdemo1;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
        //给按钮增加点击事件
        Button myButton = findViewById(R.id.apibutton);
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 处理点击事件
                doGetData();
             }
        });
    }
    //以get方式访问互联网上的页面,并返回数据
    private void doGetData() {
        Toast.makeText(MainActivity.this, "按钮被点击了!", Toast.LENGTH_LONG).show();
        //1.创建HttpClient对象
        OkHttpClient okHttpClient = new OkHttpClient();
        //2.获取request对象
        Request.Builder builder = new Request.Builder().url("https://www.bilibili.com/");
        Request request = builder.build();
        //3.异步请求发起
        okHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(@NonNull Call call, @NonNull IOException e) {
            }
            @Override
            public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
                try {
                    String result = response.body().string();
                    //如果需要更新主线程的 UI 如果使用 rxjava 以及 retrofit 就不用这样处理了
                    System.out.println("网络请求返回结果:");
                    System.out.println(result);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        });
    }
}

四,测试效果:

界面:

执行结果:

到此这篇关于android: 用okhttp通信的文章就介绍到这了,更多相关android okhttp通信内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Jetpack Compose修饰符专项精讲

    Jetpack Compose修饰符专项精讲

    在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的UI框架,它可简化并加快Android上的界面开发,使用更少的代码、强大的工具和直观的 Kotlin API,快速让应用生动而精彩
    2022-10-10
  • Android获取App内存使用情况的方法

    Android获取App内存使用情况的方法

    本篇文章主要介绍了Android获取App内存使用情况的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Android使用 Spinner控件实现下拉框功能

    Android使用 Spinner控件实现下拉框功能

    Spinner是android的一种控件,用它我们可以实现下拉框。下面通过实例代码给大家介绍Android使用 Spinner控件实现下拉框功能,感兴趣的朋友一起看看吧
    2018-08-08
  • Android刮刮卡实现原理与代码讲解

    Android刮刮卡实现原理与代码讲解

    这篇文章主要为大家详细介绍了Android刮刮卡实现原理、实现原理步骤以及代码讲解,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Android集成Unity的两种方案

    Android集成Unity的两种方案

    现在市面上的形形色色Android客户端,为了更优的用户体验,我们开发的上游产品和交互往往会在界面里设计很多动效,传统的一页页的静态展示页面已经不足以满足用户的审美需求了,本文将给大家分享Android集成Unity的两种方案,感兴趣的朋友可以参考下
    2024-05-05
  • Android Activity被回收的情况分析

    Android Activity被回收的情况分析

    Activity作为Android四大组件之一,他的启动绝对没有那么简单。这里涉及到了系统服务进程,启动过程细节很多,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
    2022-11-11
  • Android UI之ImageView实现图片旋转和缩放

    Android UI之ImageView实现图片旋转和缩放

    这篇文章主要介绍了Android UI之ImageView实现图片旋转和缩放的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • android Activity相对布局的使用方法

    android Activity相对布局的使用方法

    Activity相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一个控件的位置,下面用实例说明Activity相对布局的使用方法
    2013-11-11
  • Android开发Retrofit源码分析

    Android开发Retrofit源码分析

    这篇文章主要为大家介绍了Android开发Retrofit源码分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Java4Android开发教程(三)java基本概念

    Java4Android开发教程(三)java基本概念

    本文介绍了Java4Android的基本概念,都是开发必备的基础知识,希望能对大家有所帮助
    2014-10-10

最新评论