anchor.diff:        const ABeforeExecute: TProc<TMemoryStream>{$ifdef DelphiXE2_UP} = nil{$endif};
         const AAfterExecute: TMARSClientResponseProc{$ifdef DelphiXE2_UP} = nil{$endif};
         const AOnException: TMARSClientExecptionProc{$ifdef DelphiXE2_UP} = nil{$endif}); overload; virtual;
  +
  +    procedure PUT(const ABeforeExecute: TProc<TMemoryStream>{$ifdef DelphiXE2_UP} = nil{$endif};
  +      const AAfterExecute: TMARSClientResponseProc{$ifdef DelphiXE2_UP} = nil{$endif};
  +      const AOnException: TMARSClientExecptionProc{$ifdef DelphiXE2_UP} = nil{$endif}); overload; override;
  +    procedure PUT(const AFormData: TArray<TFormParam>;
  +      const ABeforeExecute: TProc<TMemoryStream>{$ifdef DelphiXE2_UP} = nil{$endif};
  +      const AAfterExecute: TMARSClientResponseProc{$ifdef DelphiXE2_UP} = nil{$endif};
  +      const AOnException: TMARSClientExecptionProc{$ifdef DelphiXE2_UP} = nil{$endif}); overload; virtual;
  +
  +
     published
  -    property FormData: TArray<TFormParam> read FFormData;
  +    property FormData: TArray<TFormParam> read FFormData write FFormData;
       property Response: TMemoryStream read FResponse;
       property ResponseAsString: string read GetResponseAsString;
     end;
  
positive.code: begin
    FFormData := AFormData;
    POST(ABeforeExecute, AAfterExecute, AOnException);
  end;
  
  procedure TMARSClientResourceFormData.POST(
  
negative.code:     FResponse: TMemoryStream;
    protected
      procedure AfterPOST(const AContent: TStream); override;
      procedure AfterPUT(const AContent: TStream); override;
      function GetResponseAsString: string; virtual;
    public
      constructor Create(AOwner: TComponent); override;
  