Java Android Studio -在点击按钮时抛出异常



我正在制作一个android应用程序,在按钮点击时使用OkHTTP发送API请求

然而,我在这一行得到了这个错误https://prnt.sc/10bbg1f https://prnt.sc/10bbgba

你能告诉我有什么问题吗?

package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.squareup.okhttp.Call;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
OkHttpClient client = new OkHttpClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view) {
//do something
String url = "http://7d356d3464a8.ngrok.io/neo4j?query=Th%C3%A0nh%20ph%E1%BB%91%20H%E1%BB%93%20Ch%C3%AD%20Minh";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
try {
Response response = client.newCall(request).execute();
}
catch(IOException e) {
e.printStackTrace();
}
}
}

创建一个异步GET,我们需要为一个Call排队。回调允许我们在响应可读时读取它。这将在响应头准备好后发生。

读取响应体可能仍然会阻塞。OkHttp目前没有提供任何异步api来接收响应体:

public void sendMessage(View view) {
String url = "http://7d356d3464a8.ngrok.io/neo4j?query=Th%C3%A0nh%20ph%E1%BB%91%20H%E1%BB%93%20Ch%C3%AD%20Minh";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
public void onResponse(Call call, Response response) 
throws IOException {
// ...
}

public void onFailure(Call call, IOException e) {
fail();
}
});
}

onResponse的签名与你所拥有的不同。

public void onResponse(Call Call, Response Response)

public void onFailure(Call Call, Throwable t)

最新更新