如何通过改造正确处理 text/plain 响应?

How to properly handle text/plain responses with retrofit?

我有一个网络服务调用,响应是纯文本,没有 json。在下面的回调中,即使响应成功,也总是会调用 failure(),因为 retrofit 会尝试将响应解析为 json.

new Callback<String>() {
        @Override
        public void success(String s, Response response) {
        ...    
        }

        @Override
        public void failure(RetrofitError error) {
        ...
        }
    });

出现以下错误:

retrofit.RetrofitError: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 16 path $

我怎么知道改造,响应是纯文本,不应该被视为 json?

您正在使用 GsonConverter 进行反序列化,并且 Gson 未能将响应验证为 Json 格式。这就是为什么您会收到 MalformedJsonException 的原因。您需要在 RestAdapter

中提供类似 StringConverter 的内容