C# 在C语言中解码Android Base64 URL安全且无包装#

C# 在C语言中解码Android Base64 URL安全且无包装#,c#,android,base64,C#,Android,Base64,我有一个使用C#web服务的Android应用程序。 现在我需要将一些数据从应用程序发送到web服务。 我想用Base64做这个,但要让它工作,我必须 使用Base64.URL_SAFE | Base64.NO_WRAP,否则将不会调用web服务。 因此,在我的Android代码中,我会: String dataToSend = "Some text" byte[] data = dataToSend.getBytes(); Base64.encodeToString((data), B

我有一个使用C#web服务的Android应用程序。 现在我需要将一些数据从应用程序发送到web服务。 我想用Base64做这个,但要让它工作,我必须 使用Base64.URL_SAFE | Base64.NO_WRAP,否则将不会调用web服务。 因此,在我的Android代码中,我会:

String dataToSend = "Some text"    
byte[] data = dataToSend.getBytes();
Base64.encodeToString((data), Base64.URL_SAFE|Base64.NO_WRAP);
这可以正常工作,但问题是我无法用C#解码它。在web服务中 我有:

但是如果我运行代码,我会在C#中得到一个错误:

我知道这是因为URL安全,没有包装,但我需要它来发送数据。 有没有办法将数据转换为C#中的默认Base64字符串?或者我需要替换/删除接收的Base64字符串中的某些内容吗?

可能的重复(请参见第二个答案),您需要替换所有'-',''。字符串数据=数据。替换('-','+')。替换('''/');
String data; // received data from Android
byte[] output = Convert.FromBase64String(data);
System.FormatException{"The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters"}