在Retrofit中出现字符串响应问题

时间:2015-07-30 18:09:20

标签: php android retrofit

我在我的Android应用程序中使用Retrofit与我的服务器进行通信。在我的一个服务器调用中,我期待来自服务器的String响应。所以,我声明一个需要字符串值的回调。 Callback<String>。在php中,我回显一个字符串。说echo "test";当我在浏览器中点击网址时,回声按预期工作test。但在我的Android应用程序中,调用失败回调。 我尝试将php更改为echo "\"test\""; 在浏览器上:"test" 在android:成功回调被调用。

我通过声明一个变量来解决它。 Php:

$result = "test";
echo $result;

浏览器:test

Android:调用成功回调。

我的问题是,Retrofit的工作原理是什么?或者我做错了什么?另外,要解决这个问题,除了声明一个变量之外还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

Callback<String>在改造的背景下没有多大意义。默认情况下,改造使用GSON进行操作。

您实际在服务器上等待的是将json反序列化为POJO(简单的java对象)。

假设您有一个数据模型(POJO),如:

public class User {
    public final String name;
}

然后您使用此Callback<User>之类的回调。您应该从服务器执行:echo '{ "name" : "Simon" }';

在您的成功回调中,您将拥有一个User类的实例,其名称字段设置为&#39; Simon&#39;。

有关此内容的更多信息:http://square.github.io/retrofit/