在我目前的android项目中,我正在使用新的Retrofit 2.0库向我的Web服务器发送一些数据。我只想在那里运行一个脚本,服务器不会返回任何内容。我以为我可以用这种方法做到这一点:
@POST("persons/insert.php")
Call<Void> insert(@Field("Name") String name);
我现在的问题是,虽然服务器返回200,但Retrofit会跳转到onFailure
方法。这是因为没有任何东西可以转换为Void
。那我该怎么办呢?我希望如果服务器发回200,则调用onResponse
方法,如果发生错误,则调用onFailure
。我怎样才能做到这一点?
答案 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);