我正在跟进此link的示例我收到错误:
非静态方法'newCall(com.squareup.okhttp.Request)无法从静态内容中引用
在这一行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);
}
是什么原因?
答案 0 :(得分:2)
您已经创建了一个客户端。而不是
call = OkHttpClient.newCall(request);
您的代码应如下所示:
call = client.newCall(request);
您需要创建客户端的引用。
答案 1 :(得分:2)
非静态方法' newCall(com.squareup.okhttp.Request)
错误意味着您正在尝试调用类的方法,该方法需要对象的实例,就像该方法被标记为静态一样。在您的情况下,newCall
是not-static
的{{1}}方法,因此需要访问OkHttpClient
的实例。