Ядро Asp.net mvc ввод не является допустимой строкой Base-64, так как содержит неосновной 64-символ - PullRequest
0 голосов
/ 05 апреля 2019

Это то, что я получаю, когда отправляю запрос из веб-приложения в другое, оба приложения являются 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 и проверяю ее с помощью инструментов регулярных выражений. Я не вставил это здесь, потому что это могло бы сделать сообщение уродливым, может быть найдено здесь

Я просмотрел эти и другие подобные сообщения, но ни один из них не сильно помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...