OkHttp:无法从静态内容引用非静态方法
OkHttp: Non-static method cannot be referenced from a static content
我正在跟进一个关于此的示例 link 我收到错误:
Non-static method 'newCall(com.squareup.okhttp.Request) cannot be referenced from a static content
这一行Call call = OkHttpClient.newCall(request);
这是代码
public class MainActivity extends Activity {
public OkHttpClient client = new OkHttpClient();
String requestUrl = " http://iheartquotes.com/api/v1/random?format=json";
Request request = new Request.Builder().url(requestUrl).build();
TextView text1;
public static final MediaType JSON =
MediaType.parse("application/json; charset=utf-8");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1 = (TextView) findViewById(R.id.messageText);
}
call = OkHttpClient.newCall(request);
}
这是什么原因?
您已经创建了一个客户端。而不是
call = OkHttpClient.newCall(request);
您的代码应如下所示:
call = client.newCall(request);
您需要创建的客户端引用。
Non-static method 'newCall(com.squareup.okhttp.Request)
该错误意味着您正在尝试调用 class 的方法,这需要对象的实例,例如该方法被标记为静态。在您的情况下,newCall
是 OkHttpClient
的 not-static
方法,因此它需要访问 OkHttpClient
的实例。
我正在跟进一个关于此的示例 link 我收到错误:
Non-static method 'newCall(com.squareup.okhttp.Request) cannot be referenced from a static content
这一行Call call = OkHttpClient.newCall(request);
这是代码
public class MainActivity extends Activity {
public OkHttpClient client = new OkHttpClient();
String requestUrl = " http://iheartquotes.com/api/v1/random?format=json";
Request request = new Request.Builder().url(requestUrl).build();
TextView text1;
public static final MediaType JSON =
MediaType.parse("application/json; charset=utf-8");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1 = (TextView) findViewById(R.id.messageText);
}
call = OkHttpClient.newCall(request);
}
这是什么原因?
您已经创建了一个客户端。而不是
call = OkHttpClient.newCall(request);
您的代码应如下所示:
call = client.newCall(request);
您需要创建的客户端引用。
Non-static method 'newCall(com.squareup.okhttp.Request)
该错误意味着您正在尝试调用 class 的方法,这需要对象的实例,例如该方法被标记为静态。在您的情况下,newCall
是 OkHttpClient
的 not-static
方法,因此它需要访问 OkHttpClient
的实例。