0

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!
    }
}
4

1 に答える 1