ファイルを読み取り、バイト配列に変換してからBase64文字列に変換した後、別のコンソールアプリケーションに送信するRESTサービスがあります。この部分は機能しますが、同じストリームがアプリケーションで受信されると、操作され、有効なBase64文字列ではなくなります。一部のジャンクキャラクターがストリームに導入されています。
ストリームをバイトに戻すときに受け取る例外は次のとおりです。
入力には、Base 64以外の文字、3つ以上のパディング文字、またはパディング文字の中に空白以外の文字が含まれているため、有効なBase-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);
Encoding
ます。