Asp.net核心mvc输入的内容不是有效的Base-64字符串,因为它包含非Base 64字符

时间:2019-04-05 16:34:41

标签: c# asp.net-core-mvc base64

这是我从一个Web应用程序向另一个应用程序发送请求时得到的,这两个应用程序都是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字符串,因为它包含非Base 64字符,两个以上的填充字符或填充字符中的非法字符。

我确认base64字符串有效,已经在在线base64验证程序工具上进行了验证,并通过正则表达式工具进行了检查。我没有将其粘贴到此处,因为它可能使帖子变得丑陋,可以找到 here

我研究了这些帖子以及其他所有类似内容,但是没有一个帮助很大。

0 个答案:

没有答案