如何通过改造正确处理 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 的内容
我有一个网络服务调用,响应是纯文本,没有 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