У меня есть служба REST, которая читает файл и отправляет его в другое консольное приложение после преобразования его в массив байтов, а затем в строку Base64. Эта часть выполняется правильно, но когда тот же поток принимается в приложении, он обрабатывается и больше не является допустимой строкой Base64. Некоторые нежелательные символы вводятся в поток.
Исключением, которое я получаю при преобразовании потока обратно в байты, является . Вход не является допустимой строкой Base-64, так как он содержит не-базовый символ 64, более двух символов заполнения или не- символ пробела среди символов заполнения ".
В сервисе:
[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;
}
В приложении:
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);