我在我的Android应用程序中使用Retrofit与我的服务器进行通信。在我的一个服务器调用中,我期待来自服务器的String响应。所以,我声明一个需要字符串值的回调。 Callback<String>
。在php中,我回显一个字符串。说echo "test";
当我在浏览器中点击网址时,回声按预期工作test
。但在我的Android应用程序中,调用失败回调。
我尝试将php更改为echo "\"test\"";
在浏览器上:"test"
在android:成功回调被调用。
我通过声明一个变量来解决它。 Php:
$result = "test";
echo $result;
浏览器:test
Android:调用成功回调。
我的问题是,Retrofit的工作原理是什么?或者我做错了什么?另外,要解决这个问题,除了声明一个变量之外还有其他方法吗?
答案 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/