Retrofit を使用して、一部のデータを WebAPI REST サービスに戻しています。ただし、モデルに が含まれている場合、byte[]
WebAPI が受け取る値は null です。プロパティを削除するSignature
と、残りの値でモデルが期待どおりに受信されます。
また、Signature
プロパティを null のままにしても機能します。WebAPI が null 値を受け取るのは、署名にコンテンツが含まれている場合のみです。
バイト配列には、デバイスでキャプチャされた PNG 署名イメージが含まれています。
byte[]
プロパティを含む私のモデルは次のとおりです。
public class RefundDto {
public String Id;
public String Amount;
public int AssetId;
public String Comments;
public String DateCreated;
public String DateModified;
public int FaultId;
public int RefundActionId;
public int SiteId;
public int UserId;
public byte[] Signature; // The culprit
}
次のコードを使用してモデルを送信します。
RefundDto dto = getDto();
service.postRefund(dto, new Callback<RefundDto>() {
@Override
public void success(RefundDto dto, Response response) {
DatabaseHandler db = new DatabaseHandler(context);
db.deleteRefund(dto.Id);
db.close();
}
@Override
public void failure(RetrofitError retrofitError) {
}
});
Retrofit の DataService メソッドは次のようになります。
@POST("/refunds")
void postRefund(@Body RefundDto model, Callback<RefundDto> callback);
私は次の残りの方法に送信しています:
public class RefundsController : ApiController
{
public RefundDto Post([FromBody]RefundDto value)
{
// value is null!
}
}