1.首先 在AndroidManifest 里面添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
android:usesCleartextTraffic="true" //application里面添加
两个都需要添加
2.创建一个java类 使用的时候进行调取
package com.lxhy.intelligencevalley;
import java.util.concurrent.TimeUnit;
import okhttp3.*;
public class Child_NetworkRequest {
private static final OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(4, TimeUnit.SECONDS) // 设置连接超时时间为4秒
.writeTimeout(10, TimeUnit.SECONDS) // 设置写入超时时间为10秒
.readTimeout(15, TimeUnit.SECONDS) // 设置读取超时时间为15秒
.build();
// GET请求
public static void get(String url, Callback callback) {
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(callback);
}
// POST请求
public static void post(String url, String json, Callback callback) {
RequestBody body = RequestBody.create(
MediaType.parse("application/json; charset=utf-8"),
json
);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
client.newCall(request).enqueue(callback);
}
}
3. 进行调取使用post(登录示例)
// 创建一个HashMap对象,键的类型为String,值的类型为Object
Gson gson = new Gson();
Map<String,Object> map=new HashMap<>();
map.put("username","");
map.put("password","");
final String json = gson.toJson(map); //将map改为json形式
Child_NetworkRequest.post("放入你的url地址",map.toString(), new Callback() {
public void onFailure(Call call, IOException e) {
// 处理请求失败
ToastUtils.showShort("网络异常");
}
public void onResponse(Call call, Response response) throws IOException {
// 处理请求成功,获取并更新UI
String map = response.body().string(); //获取json数据
Map<String, Object> map1 = new Gson().fromJson(map, HashMap.class); //解析json数据
if (map1.get("code").toString().startsWith("2")) { //一般code以2开头都是请求成功
ToastUtils.showShort("登录成功");
} else {
ToastUtils.showShort("用户不存在");
}
}
});
4. 进行调取使用get
Child_NetworkRequest.get("url地址", new Callback() {
public void onFailure(Call call, IOException e) {
ToastUtils.showShort("网路异常");
}
public void onResponse(Call call, Response response) throws IOException {
String json = response.body().string(); //获取json数据
Map<String,Object> map1 = new Gson().fromJson(json, HashMap.class); //解析json数据
if (map1.get("code").toString().startsWith("2")) {
//请求成功
String user=map1.get("user"); //获取get请求中的所有user字符串
log.e("user",user); //将获取的 打印出来
}
}
});