1、添加依赖
compile 'com.squareup.okhttp3:okhttp:4.9.0'
implementation "com.squareup.okhttp3:okhttp:4.9.0"
2、添加权限
3、进行请求
OKHttp Get请求 OkHttp进行Get请求 四部曲(1)拿到OkHttpClient对象
OkHttpClient client = new OkHttpClient();
(2)构造Request对象
Request request = new Request.Builder()
.get()
.url("https:www.baidu.com")
.build();
(3)将Request封装为Call
Call call = client.newCall(request);
(4)异步请求方法
call.enqueue(new Callback(){}) (异步请求)
Response response = call.execute();(同步请求,不建议使用)
OKHttp Get同步请求 OKHttp Post请求(表单形式Form 键值对) OkHttp进行Post请求 五部曲(1)拿到OkHttpClient对象
OkHttpClient client = new OkHttpClient();
(2)构建FormBody,传入参数
RequestBody form = new FormBody.Builder()
.add("username", "root")
.add("password", "root123456")
.build();
(3)构建Request对象
将FormBody作为Post方法的参数传入
Request request = new Request.Builder()
.post(formBody)
.url("https:www.baidu.com")
.build();
(4)将Request封装为Call
Call call = client.newCall(request);
(5)异步请求方法
call.enqueue(new Callback(){}) (异步请求)
OKHttp Post请求 错误not permitted by network security policy
解决:
1.在 res 下新建一个 xml 目录,然后创建一个名为:network_security_config.xml 文件 ,该文件内容如下
2.mainfest里配置
正在上传...取消
Handleronly the original thread that created a view hierarchy can touch its views
不能再子线程更新UI
一、创建new Handler
Handler handler = new Handler(){}
二、重写handleMessage方法
三、发送message
handler.sendMessage(message);
Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
String message = (String) msg.obj;
Toast.makeText(OkHttpActivity.this,message,Toast.LENGTH_SHORT).show();
text.setText(message);
break;
default:
}
}
};
Message message = new Message();
message.what = 1;
message.obj = msg; //发送的内容
handler.sendMessage(message);



