0
サーバーに新しいUserオブジェクトを@POSTする機能を使用しています。ユーザー名は、データベース表の一意のキーです。一意のユーザー名で非同期呼び出しを実行すると、そのエントリがUserテーブルに追加されます。応答は成功です。Retrofit - POSTが失敗したときの知り合い
ただし、既存のユーザー名を持つユーザーの呼び出しを実行しようとすると、データベーステーブルに(期待どおり)追加されません。BUT応答は成功です。すべてのケースで、私は成功した反応を得ています。
操作が成功したことを通知または確認するにはどうすればよいですか?作成/更新/削除の呼び出しがデータベースに正常に反映されていれば?
エンドポイント:
@POST("user")
Call<User> saveUser(@Body User m);
サンプルコール:
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
try {
if(response.isSuccessful()) {
Log.i(Constants.LOG, response.raw().toString());
}
} catch (Exception e) {
Log.e(Constants.LOG, e.toString());
}
}
すべてのシナリオでは、生の応答出力:
Response{protocol=http/1.1, code=200, message=OK, url=http://myapi.com/user}
すべてをあなたのサーバが状態コード200を返す時間? –
意図した作業が行われたかどうかにかかわらず、Webサービスにヒットした場合は、毎回ステータスコードとして200が取得されます。私は、あなたのサーバーコードにログを記録し、何が壊れているのかを見て、例外を処理してクライアントに適切な応答を返すように提案します。 –
しかし、操作が成功したかどうかを確認するにはどうすればよいですか?私の電話をテストするために郵便配達員を使用すると、私の残りのアプリで、私は成功/不成功のメッセージを返すことができます。どのように私は改造を使用してそのようなメッセージを返すことができますか? – Santiago