第一步,定义接口类:
public interface MCallBack {
/**
* 处理返回的code list
*/
void handleCodes(String dataStr);
/**
* 请求失败处理
*/
void errorResponse();
}
第二步,在公共类中定义回传方法:
public static void sendRequest(final MCallBack mCall, String url) {
OkHttpClient okHttpClient = new OkHttpClient();
final Request request = new Request.Builder()
.url(url)
.get()//默认就是GET请求,可以不写
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e("TAG", "onFailure: " + e.getMessage());
if (mCall != null) {
mCall.errorResponse();
}
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (mCall != null) {
mCall.handleCodes(response.body().string());
}
}
});
}
第三步,触发和接收数据:
public class MainActivity extends AppCompatActivity {
private String TAG = "MainActivity";
private TextView tv_code;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0x001) {
tv_code.setText(msg.obj.toString());
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_code = findViewById(R.id.tv_code);
Command.sendRequest(new MCallBack() {
@Override
public void handleCodes(String codeStr) {
Log.e(TAG,codeStr);
Message msg = new Message();
msg.what = 0x001;
msg.obj = codeStr;
handler.sendMessage(msg);
}
@Override
public void errorResponse() {
}
},"https://www.csdn.net/");
}
}
获取到数据: