मेरे पास एक REST सेवा है जो एक फ़ाइल पढ़ती है और इसे बाइट सरणी में और उसके बाद बेस 64 स्ट्रिंग में परिवर्तित करने के बाद दूसरे कंसोल एप्लिकेशन पर भेजती है। यह हिस्सा काम करता है, लेकिन जब आवेदन पर एक ही स्ट्रीम प्राप्त होता है, तो यह हेरफेर हो जाता है और अब वैध बेस 64 स्ट्रिंग नहीं है। कुछ कबाड़ पात्रों को धारा में पेश किया जा रहा है।
बाइट को वापस धारा में परिवर्तित करते समय प्राप्त अपवाद है
इनपुट मान्य बेस -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);
Encoding
।