----------------------------导入依赖-----------------------------
implementation 'com.google.code.gson:gson:2.2.4' implementation 'com.google.guava:guava:16.0.1'
------------------------权限-----------------------
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" />
---------------------------这是Http,关于Http我是分开来写的首先这是第一步
public class HttpUtils {
//单例模式
private static final HttpUtils ourInstance = new HttpUtils();
public static HttpUtils getInstance() {
return ourInstance;
}
private HttpUtils() {
}
//定义一个方法
public void getDatFromServer(String url, HttpCallback callback) {
new LoadDataTask(callback).execute(url);
}
private class LoadDataTask extends AsyncTask<String, Void, String> {
//接口回调
private HttpCallback callback;
public LoadDataTask(HttpCallback callback) {
this.callback = callback;
}
//解析数据
@Override
protected String doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
return CharStreams.toString(new InputStreamReader(connection.getInputStream(), "UTF-8"));
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
if (callback != null) {
if (!TextUtils.isEmpty(s)) {
callback.onSuccess(s);
} else {
callback.onError("没有请求到数据");
}
}
}
}
}
-----------------------接下来就是我定义的接口,比较简单
public interface HttpCallback {
void onSuccess(String result);
void onError(String errorMsg);
}
这是数据的返回请求