Bir dosyayı okuyan ve onu Byte dizisine ve ardından Base64 dizesine dönüştürdükten sonra başka bir konsol uygulamasına gönderen bir REST hizmetim var. Bu parça çalışır, ancak uygulamada aynı akış alındığında, manipüle edilir ve artık geçerli bir Base64 dizesi değildir. Bazı önemsiz karakterler akışa giriyor.
Akışı Bayte geri dönüştürürken alınan istisna
Giriş, 64 tabanlı olmayan bir karakter, ikiden fazla dolgu karakteri veya dolgu karakterleri arasında beyaz olmayan boşluk karakteri içerdiğinden geçerli bir Base-64 dizesi değildir
Serviste:
[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;
}
Başvuruda:
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);
Encoding
.