java - android中的OkHttp用于发出网络请求

标签 java android okhttp

我要做什么::

我正在尝试学习 Okhttp 的用法用于在 android 中进行网络调用


我做了什么::

  • 我已阅读他们的文档 here
  • 我已经下载并在项目中添加了 JAR
  • 我正在使用来自 here 的示例代码

我的代码::

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); as The method execute(Request) is undefined for the type OkHttpClient

最佳答案

The method execute(Request) is undefined for the type OkHttpClient

你得到这个异常是因为没有这样的方法,即 OkHttpClientexecute(Request)。而是在使用 OkHttpClient 对象获得的 Call 对象上调用它,如下所示:

  Call call = client.newCall(request);
  Response response = call.execute();

我认为你应该使用

Response response = client.newCall(request).execute();

而不是 Response response = client.execute(request);

OkHttp docs

OkHttp Blog

关于java - android中的OkHttp用于发出网络请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201663/

相关文章:

java - 将 android 项目转换为库项目

android - 在循环中添加 post 参数 - OkHTTP

android - Okhttp NoClassDefFoundError

java - 如何迭代 map 列表并找到字段的最大值并删除其他字段

java - xades4j.UnsupportedAlgorithmException : Unsupported transform on XML Signature provider

java - Android:使用 CSS 问题在 WebView 中自定义字体

android - VS 2015 RC Apache Cordova 空白 appTemplate 构建失败

java - struts2中找不到struts dispatcher

android - 自动更正不适用于 autocompletetextview?

android - 来自 okhttp3.internal.Util.closeQuietly() 的 IncompleteClassChangeError