没有响应的改造2.0方法

时间:2015-10-01 13:45:07

标签: android retrofit

在我目前的android项目中,我正在使用新的Retrofit 2.0库向我的Web服务器发送一些数据。我只想在那里运行一个脚本,服务器不会返回任何内容。我以为我可以用这种方法做到这一点:

@POST("persons/insert.php")
Call<Void> insert(@Field("Name") String name);

我现在的问题是,虽然服务器返回200,但Retrofit会跳转到onFailure方法。这是因为没有任何东西可以转换为Void。那我该怎么办呢?我希望如果服务器发回200,则调用onResponse方法,如果发生错误,则调用onFailure。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:33)

您可以让它返回http://127.0.0.1:8000/admin/customerData/wifirouter/?building__building_label=4+rue+de+Douai

ResponseBody

您仍然会获得@POST("persons/insert.php") Call<ResponseBody> insert(@Field("Name") String name); onResponse,但它不会尝试将流反序列化为对象。

答案 1 :(得分:5)

您可以完全避免响应正文。 在beta2中,您可以Call<Void>放弃响应正文并获取http状态代码。

@POST("persons/insert.php")
Call<Void> insert(@Field("Name") String name);