Android Okhttp 异步调用
2022-09-05 00:35:38
我正在尝试使用Okhttp库通过API将我的Android应用程序连接到我的服务器。
我的API调用发生在按钮点击上,我收到以下android.os.NetworkOnMainThreadException。我知道这是由于我正在尝试在主线程上进行网络调用,但我也在努力在Android上找到一个干净的解决方案,如何使此代码使用另一个线程(异步调用)。
@Override
public void onClick(View v) {
switch (v.getId()){
//if login button is clicked
case R.id.btLogin:
try {
String getResponse = doGetRequest("http://myurl/api/");
} catch (IOException e) {
e.printStackTrace();
}
break;
}
}
String doGetRequest(String url) throws IOException{
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
上面是我的代码,并且异常被抛出在行上
Response response = client.newCall(request).execute();
我还读到Okhhtp支持Async请求,但我真的找不到Android的干净解决方案,因为大多数人似乎使用使用AsyncTask的新类<>?