在我目前的android项目中,我正在使用新的Retrofit 2.0库向我的Web服务器发送一些数据.我只想在那里运行一个脚本,服务器不会返回任何内容.我以为我可以用这种方法做到这一点:
@POST("persons/insert.php")
Call<Void> insert(@Field("Name") String name);
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,onFailure虽然服务器返回200 ,但Retrofit会跳转到该方法.这是因为没有任何东西可以转换为Void.那我该怎么办呢?我希望onResponse如果服务器发回200并且onFailure发生错误,则调用该方法.我怎样才能做到这一点?
iag*_*een 33
你可以让它返回一个ResponseBody.
@POST("persons/insert.php")
Call<ResponseBody> insert(@Field("Name") String name);
Run Code Online (Sandbox Code Playgroud)
你仍然会得到onResponse和onFailure,但不会尝试将流反序列化的对象.
你可以完全避免响应体.在beta2中,您可以Call<Void>放弃响应正文并获取http状态代码.
@POST("persons/insert.php")
Call<Void> insert(@Field("Name") String name);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6868 次 |
| 最近记录: |