Wygląda prawidłowo.
W nagłówkach http nie może wystąpić znak +
(tak jak parę innych znaków) ergo musi być zakodowany jako %2B
.
Tak samo =
.
To mi wygląda na problem XY. Z czym właściwie masz problem. Jakie są faktycznie objawy, a nie twoja diagnoza.
Wysyłam fakturę do KSeF operacją batch/Uplad.
Tam trzeba wysłać skrót tej faktury zakodowany Base64:
0ER7+83+h6FT142XwOJ87CaY18kopo6JM1PPTO4N1Kg=
W Delphi REST wygląda to tak:
RRequest.ResetToDefaults;
RRequest.Method:=rmPut;
RRequest.Resource:='batch/Upload/'+ref+'/'+partName;
RRequest.Accept:='application/json';
RRequest.Params.AddHeader('Content-SHA256',skrot);
RRequest.Params.AddHeader('X-TargetSrv-Name',serwer);
RRequest.AddBody(faktura,trestcontenttype.ctAPPLICATION_OCTET_STREAM);
RRequest.Execute;
Podejrzałem Fidler-em, jak to jest wysyłane z Delphi
PUT https://ksef-test.mf.gov.pl/api/batch/Upload/20230626-SE-69A1E9F62B-ED755DBB0B-EB/20230626-EA-6181199816-45B3D116F9-3D HTTP/1.1
Connection: Keep-Alive
Content-Type: application/octet-stream
Accept: application/json
Accept-Charset: UTF-8, *;q=0.8
User-Agent: Embarcadero RESTClient/1.0
Content-SHA256: 0ER7%2B83%2Bh6FT142XwOJ87CaY18kopo6JM1PPTO4N1Kg%3D
X-TargetSrv-Name: srvTEMFA
Content-Length: 1408
Host: ksef-test.mf.gov.pl
KSeF tego nie przyjął. Dostałem odpowiedź "Nieprawidłowy rozmiar części pakietu.".
Pomyślałem, że może przyczyną jest ta zamiana + na %2B.