首页 > 其他分享 >Android 数据传递的几种方式,HttpLoggingInterceptor消息拦截器

Android 数据传递的几种方式,HttpLoggingInterceptor消息拦截器

时间:2023-01-07 14:00:16浏览次数:36  
标签:拦截器 bundle Intent HttpLoggingInterceptor new intent Android data



目录

​​Android 数据传递的几种方式​​

​​一。用intent传递​​

​​二。使用bundle进行传值:​​

​​三。当antivity销毁时传递数据StartActivityForResult​​

​​HttpLoggingInterceptor消息拦截器​​


Android 数据传递的几种方式

一。用intent传递

第1个activity:

Intent intent =new Intent(this,TwoActivity.class);

intent.putExtra("data",str);

startActivity(intent);

第2个activity:

Intent intent=getIntnet();

String str=intent.getStringExtra("data")

二。使用bundle进行传值:

第1个activity:

Intentintent =new Intent(MainActivity.this,TwoActivity.class);

Bundle bundle=new Bundle();

bundle.PutString("data",str);

intent.putExtra("bun",bundle);

startActivity(intent);

第2个activity:

Intent intent =getIntent();

bundle bundle=inteent.getBundlePutExtra("bun");

String str =Bundle.getString("data");

tv.setText();

三。当antivity销毁时传递数据StartActivityForResult

第1个activity: 

Intent intent =new Intent(MainActivity.this,TwoActivity.this);

StartActivityForResult(intent,1111)

protected viod onActivityResult(int requestCode,int resultCode,Intent data){

super.onActivityResult(request,resultCode,data);

String str=data.getStringExtra("data")

tv.setText(str);

}

第2个activity:

Intent intent =new Intent();

intent.putExtra("data",)

HttpLoggingInterceptor消息拦截器

使用原因:
利用了消息拦截器可以清楚的看到接口返回的所有内容。不需要重新使用fildder等抓包工具来做分析。

1.添加依赖

//okhttp的log信息
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'


2.在合适的位置初始化(这里放在了构造,因为是单例,响应的拦截器也只new一次)

private HttpMethod() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
try {
String text = URLDecoder.decode(message, "utf-8");
Log.e("OKHttp-----", text);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
Log.e("OKHttp-----", message);
}
}
});
//这里可以builder(). 添加更多的内容 具体看需求
mClient = new OkHttpClient.Builder().addInterceptor(interceptor).build();
//这行必须加 不然默认不打印
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
}


3.在retrofit中设置httpclient

Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//添加HttpClient
.client(mClient)
.build();
mApiService = retrofit.create(ApiService.class);


setlevel用来设置日志打印的级别,共包括了四个级别:NONE,BASIC,HEADER,BODY

  1. BASEIC:请求/响应行
  2. HEADER:请求/响应行 + 头
  3. BODY:请求/响应航 + 头 + 体

Android 数据传递的几种方式,HttpLoggingInterceptor消息拦截器_拦截器



标签:拦截器,bundle,Intent,HttpLoggingInterceptor,new,intent,Android,data
From: https://blog.51cto.com/u_12480926/5995492

相关文章

  • 【Android】学习day05|RadioButton
    注意事项:当使用默认选中标签:check时,必须要给标签加id,否则失效。这个没什么,挺简单的,就记录一下代码【监听事件】packagecom.example.app02;importandroidx.appcompat......
  • 自动生成android动画配置文件
    importflash.net.FileReference;importflash.system.System;varxs:XML=<animation-listxmlns:android="http://schemas.android.com/apk/res/android"android:oneshot......
  • Android studio 开发环境搭建
    1,安装jdk(JavaSEDevelopmentKit)   下载地址:https://www.oracle.com/java/technologies/downloads/#jdk19-windows    按下图下载安装,可以免去手动配......
  • 【Android】学习day05|简单登陆页面的实现|监听代码
    实现效果如下图所示    实现代码【部分】MainActivity.java1packagecom.example.app02;23importandroidx.appcompat.app.AppCompatActivity;4......
  • 三星ANDROID 10蓝牙连接上,数据没上来
    app能跟设备连接上,同时使能通道也是成功的,写入数据也是成功的,但是设备没有任何反应,也没数据上来。联调发现虽然app得到的反馈是成功的,但是设备并没有收到使能通道和写入数......
  • 三星ANDROID手机调整闪光灯的亮度
    该方法并不是所有Android手机都能用,仅在三星手机上测试过三星在CameraManager里面增加了setTorchMode和semSetTorchMode函数,这两个函数是一样的函数原型publicvoi......
  • 【Android 】使用MediaPlayer播放音频以及AudioManager简介
    这里主要通过MediaPlayer以及AudioManager来实现的对应的功能。1.第一种,播放本地媒体文件:你需要自己准备一个MP3格式的音频文件;然后在资源目录(res)里面新建一个raw......
  • Mybatis 拦截器
    1.添加依赖<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId>......
  • Android画布(二)ShapeDrawable常用函数
    ShapeDrawable常用函数setBounds()用来指定当前ShapeDrawable在当前控件中的显示位置setBounds(intleft,inttop,intright,intbottom)setBounds(Rectbounds)getPaint......
  • 基于Mockito的Android应用单元测试
    Mockito是java开发中常用的Mock库,在Android应用单元测试中比较常见在实际的单元测试中,测试的类之间会有或多或少的耦合,导致无法顺利的进行测试,这是就可以使用Mockito,该库可......