问题:如果请求调用失败,方法会返回响应,有时为空。应手动将异常错误消息添加到返回的响应中。
研究:
Request request;
Response response = null;
try {
response =
client
.newCall(request)
.execute();
} catch (IOException e) {
response = ... // Need to instantiate manually.
}
问题:如何创建空的 Response 实例来更改其空值?
您可能需要:
Response.Builder builder = new Response.Builder();
//builder.code(200).message("success").body(...);
response = builder.build();
尽管响应为空,但您可以使用 Builder 来设置任何您需要的值。
以 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()
需要 request、protocol、message 属性(以避免 IllegalStateException)。