1、假设服务器有一个登录接口:
我们需要调用这个接口校验身份以登录。
步骤如下:
2、在AndroidManifest.xml添加以下三个权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
3、新建一个xml文件,比如命名为nettools添加以下内容
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
4、在 build.gradle 的dependencies 下添加以下内容
//okhttp3
implementation 'com.squareup.okhttp3:okhttp:3.7.0'
implementation 'com.squareup.okio:okio:1.13.0'
等待下载完成
5、在MainActivity添加以下包:
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
用post方法提交表单
public void sendRequestsWithOkHttp() {
String url = serviceIP + "/user/login";
//1,创建OKhttpClient对象
OkHttpClient mOkHttpClient = new OkHttpClient();
//2,创建Request
RequestBody formBody = new FormBody.Builder()
.add("userName", userName)
.add("userPassword", userPassword)
.build();
Request request = new Request.Builder().url(url).post(formBody).build();
//3,创建call对象并将请求对象添加到调度中
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String s = Objects.requireNonNull(response.body()).string();
Log.e("request", "onResponse: "+ s );
//数据处理/
}
});
}
提醒:serviceIP 暂时不建议要用https