#android #asp.net #base64 #android-volley
Вопрос:
Я пытаюсь отправить изображение в виде базовой строки 64 с помощью volley в API .net core. Это мой код для Android
public void SendImages(String file) {
byte[] encoded =null;
try {
byte[] strBytes = Base64.decode(file, Base64.DEFAULT);
encoded = Base64.encode(
strBytes, Base64.URL_SAFE | Base64.NO_PADDING | Base64.NO_WRAP);
String files = URLEncoder.encode("file", "utf-8");
}catch (IOException i){
}
String URL = "http://192.168.8.104:45456/api/Image/UploadFileTwo/" encoded;
RequestQueue requestQueue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(stringRequest);
}
и это мой API
[HttpPost]
[Route("{UploadFileTwo}/{base64}")]
public void LoadBase64(string base64)
{
var decodedStr = Base64UrlEncoder.Decode(base64);
byte[] bytes = Convert.FromBase64String(base64);
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
image.Save(base64);
}
Проблема в том, что я получаю «Систему.Исключение FormatException: «Ввод не является допустимой строкой Base-64, поскольку она содержит неосновные 64 символа, более двух символов заполнения или недопустимый символ среди символов заполнения». » в API, когда я пытаюсь декодировать строку base64
Комментарии:
1. Вы декодируете в одной строке и кодируете в следующей. Я не могу следовать за тобой.
2. И что же это было, что вы расшифровали?