我要做什么::
我正在尝试学习 Okhttp 的用法用于在 android 中进行网络调用
我做了什么::
我的代码::
MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.internal.http.Request;
import com.squareup.okhttp.internal.http.Response;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Request request = new Request.Builder()
.url("https://raw.github.com/square/okhttp/master/README.md")
.build();
Response response = client.execute(request);
Log.d("ANSWER", response.body().string());
}
}
我面临的错误::
在 Response response = client.execute(request);
这一行
我收到错误:
client cannot resolved to a variable
如何解决这个问题!
{更新}
public class MainActivity extends Activity {
OkHttpClient client = new OkHttpClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Request request = new Request.Builder()
.url("https://raw.github.com/square/okhttp/master/README.md")
.build();
Response response = client.execute(request);
Log.d("ANSWER", response.body().string());
}
}
现在我面临以下错误:
in the line
Response response = client.execute(request);
asThe method execute(Request) is undefined for the type OkHttpClient
最佳答案
The method execute(Request) is undefined for the type OkHttpClient
你得到这个异常是因为没有这样的方法,即 OkHttpClient
的 execute(Request
)。而是在使用 OkHttpClient
对象获得的 Call
对象上调用它,如下所示:
Call call = client.newCall(request);
Response response = call.execute();
我认为你应该使用
Response response = client.newCall(request).execute();
而不是 Response response = client.execute(request);
关于java - android中的OkHttp用于发出网络请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201663/