Ich habe einen REST-Dienst, der eine Datei liest und an eine andere Konsolenanwendung sendet, nachdem sie in ein Byte-Array und dann in eine Base64-Zeichenfolge konvertiert wurde. Dieser Teil funktioniert, aber wenn derselbe Stream in der Anwendung empfangen wird, wird er manipuliert und ist keine gültige Base64-Zeichenfolge mehr. Einige Junk-Charaktere werden in den Stream eingeführt.
Die Ausnahme, die beim Konvertieren des Streams zurück in Byte empfangen wird, ist
Die Eingabe ist keine gültige Base-64-Zeichenfolge, da sie ein Nicht-Base-64-Zeichen, mehr als zwei Füllzeichen oder ein nicht Leerzeichen unter den Füllzeichen enthält
Im 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;
}
Bei der Anwendung:
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);
s
im Dienst), und den Inhalt, der empfangen wird (dh result.content
Sie müssen nicht die gesamte Zeichenfolge veröffentlichen, sondern nur bis zum ersten verstümmelten Zeichen (oder, wenn das noch zu lang ist) , einige Teilzeichenfolgen, die zeigen, was gesendet und was empfangen wurde)
result.Content
? Hier erfahren Sie, ob das Problem beim Server oder beim Client liegt.
Encoding
.