Это то, что я получаю, когда отправляю запрос из веб-приложения в другое, оба приложения являются asp.net core mvc 2.1
Запрос
var pdf = _pdfService.CreatePdf(body);
string values = string.Format("pdfName={0}&pdfByte={1}", pdfName, Convert.ToBase64String(pdf));
StringContent content = new StringContent(values, Encoding.UTF8, "application/x-www-form-urlencoded");
using (var client = new HttpClient())
{
var result = await client.PostAsync("host", content);
if (result.IsSuccessStatusCode)
{
//do stuff
}
}
Приемник
[HttpPost]
public IActionResult WritePdfToFile(string pdfByte, string pdfName)
{
try
{
System.IO.File.WriteAllBytes(Path.Combine(_environment.WebRootPath, pdfName),
Convert.FromBase64String(pdfByte));
return Ok(new { error = false });
}
catch (Exception ex)
{
_logger.LogError(ex, ex.Message);
return BadRequest(new { error = false, message = ex.Message });
}
}
Эта строка выдает исключение
Convert.FromBase64String(pdfByte)
Входные данные не являются допустимой строкой Base-64, так как они содержат неосновной 64-символ, более двух символов заполнения или недопустимый символ среди символов заполнения.
Я подтверждаю, что строка base64 действительна, я проверил онлайн-инструменты проверки base64 и проверяю ее с помощью инструментов регулярных выражений. Я не вставил это здесь, потому что это могло бы сделать сообщение уродливым, может быть найдено здесь
Я просмотрел эти и другие подобные сообщения, но ни один из них не сильно помог.