当前位置: 首页 > 面试题库 >

Android中的OkHttp用于发出网络请求

解高昂
2023-03-14
问题内容

我正在尝试做的事情 ::

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

我做了什么 ::

  • 在这里 阅读了他们的文档 __
  • 我已经在项目中下载并添加了JAR
  • 我从 这里 使用他们的示例代码 __

MyCode ::

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); 我收到以下错误消息

客户无法解析为变量

如何解决这个问题!

{更新}

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());

    }

}

现在我面临的错误是:

在行Response response = client.execute(request);The method execute(Request) is undefined for the type OkHttpClient


问题答案:

类型OkHttpClient的execute(Request)方法未定义

您正在获取此异常,因为没有这样的方法。execute(RequestOkHttpClient。而是在Call使用OkHttpClientobject
获得的object 上调用它,如下所示:

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

我认为你应该使用

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

代替 Response response = client.execute(request);

OkHttp文档

OkHttp博客



 类似资料:
  • OKHTTP在某种程度上支持并发请求API吗? 如果没有,最好的实现方法是什么?

  • 问题内容: 我读了一些将jsons发布到服务器的示例。 有人说: OkHttp是Java提供的HttpUrlConnection接口的实现。它提供用于编写​​内容的输入流,并且不知道(或不在乎)内容的格式。 现在,我想用名称和密码的参数对URL进行常规发布。 这意味着我需要自己将名称和值对编码为流? 问题答案: 当前接受的答案已过期。现在,如果您想创建一个发布请求并向其中添加参数,则应该使用Mul

  • 我阅读了一些将jsons发布到服务器的示例。 有人说: OkHttp是Java提供的HttpUrlConnection接口的实现。它提供了一个用于写入内容的输入流,而不知道(或关心)该内容是什么格式。 现在我想用name和password参数对URL做一个普通的post。 这意味着我需要自己将名称和值对编码成流?

  • 本文向大家介绍Android基于OkHttpUtils网络请求的二次封装,包括了Android基于OkHttpUtils网络请求的二次封装的使用技巧和注意事项,需要的朋友参考一下 OkHttpUtils网络请求为什么进行二次封装? 1、减少代码量 2、后期换网络处理框架方便 二次封装的实现原理 1、将网络请求提取在一个方法中 2、对里面的可变参数,可以通过参数传递过去,也可以提供一个set方法传递

  • 问题内容: 在或中,是否有一个选项可以指定网络接口来发起连接? 编辑:在OS级别的AFAIK,我可以指定地址级别,或将负载平衡到路由表中。但是我软件中接口选择的方式不止于此,我想知道我是否可以在代码中做到这一点。 问题答案: 节点具有以下内置功能: http://nodejs.org/api/net.html#net_net_connect_options_connectionlistener h

  • > 在iOS上,我广泛使用了AFNetworking项目。是否有一个与Android相当的库? 我已经阅读了OkHTTP和Square的改型,以及Volley,但还没有使用它们开发的经验。我希望有人能为每种情况提供一些最佳用例的具体例子。从我所读到的内容来看,OkHTTP似乎是三个中最健壮的,并且可以处理这个项目(上面提到的)的需求。