Mam usługę REST, która odczytuje plik i wysyła go do innej aplikacji konsoli po przekonwertowaniu go na tablicę Byte, a następnie na ciąg Base64. Ta część działa, ale gdy ten sam strumień jest odbierany w aplikacji, jest manipulowany i nie jest już prawidłowym ciągiem Base64. Niektóre postacie śmieci są wprowadzane do strumienia.
Wyjątkiem odebranym podczas konwersji strumienia z powrotem na Byte jest
Dane wejściowe nie są prawidłowym ciągiem Base-64, ponieważ zawierają znak inny niż podstawowy 64, więcej niż dwa znaki uzupełniające lub znak inny niż biały znak wśród znaków uzupełniających
W służbie:
[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;
}
Przy aplikacji:
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
.