如何创建自定义空okhttp3.Response?

问题描述 投票:0回答:2

问题:如果请求调用失败,方法会返回响应,有时为空。应手动将异常错误消息添加到返回的响应中。

研究:

Request request;
Response response = null;

  try {

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

  } catch (IOException e) {

    response = ... // Need to instantiate manually.
  }

问题:如何创建空的 Response 实例来更改其空值

okhttp
2个回答
0
投票

您可能需要:

Response.Builder builder = new Response.Builder();
//builder.code(200).message("success").body(...);
response = builder.build();

尽管响应为空,但您可以使用 Builder 来设置任何您需要的值。


0
投票

以 Kotlin 语言为例:

val response = Response.Builder()
            .request(chain.request())
            .protocol(Protocol.HTTP_2)
            .code(200)
            .message("success")
            .header("MOCKED_HEADER_KEY", "MOCKED_HEADER_VALUE")
            .body("mocked body".toResponseBody("text/html".toMediaTypeOrNull()))
            .build()
需要

requestprotocolmessage 属性(以避免 IllegalStateException)。

© www.soinside.com 2019 - 2024. All rights reserved.