J'ai un service REST qui lit un fichier et l'envoie à une autre application console après l'avoir converti en tableau d'octets puis en chaîne Base64. Cette partie fonctionne, mais lorsque le même flux est reçu par l'application, il est manipulé et n'est plus une chaîne Base64 valide. Certains caractères indésirables sont introduits dans le flux.
L'exception reçue lors de la reconversion du flux en octet est la suivante
L'entrée n'est pas une chaîne Base-64 valide car elle contient une chaîne non-base 64 plus de deux caractères de remplissage ou un caractère autre qu'un espace blanc. parmi les caractères de remplissage
Au service :
[WebGet(UriTemplate = "ReadFile/Convert", ResponseFormat = WebMessageFormat.Json)]
public string ExportToExcel()
{
string filetoexport = "D:\\SomeFile.xls";
byte[] data = File.ReadAllBytes(filetoexport);
var s = Convert.ToBase64String(data);
return s;
}
A l'application :
var client = new RestClient("http://localhost:56877/User/");
var request = new RestRequest("ReadFile/Convert", RestSharp.Method.GET);
request.AddHeader("Accept", "application/Json");
request.AddHeader("Content-Type", "application/Json");
request.OnBeforeDeserialization = resp => {resp.ContentType = "application/Json";};
var result = client.Execute(request);
byte[] d = Convert.FromBase64String(result.Content);