Я отправляю строку base64encode в свой asp.net-webapi, например "PHA+ZHNmYWFzZGYgZDxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDApOyI+c2FmYWRzZjwvc3Bhbj48L3A+"
Но... API получает только следующую строку: "PHA ZHNmYWFzZGYgZDxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDApOyI c2FmYWRzZjwvc3Bhbj48L3A" с символом '+', замененным на ' '.
[Route("api/Test/TestFuncCall")]
[HttpPost]
public HttpResponseMessage TestFuncCall([FromBody] string input)
{
JObject jo = JObject.Parse(input);
string data = Convert.ToString(jo["data"]);
string c = System.Text.Encoding.GetEncoding("utf-8").GetString(Convert.FromBase64String(data));
return Request.CreateResponse(HttpStatusCode.OK, c);
}
Я пытался добавить <pages validateRequest = "false"/> в свой файл web.config. Но не работает.
Как получить полную строку base64encode без какого-либо фильтра?
Вам необходимо закодировать строку в URL-адресе, поскольку в строке base64 есть символы, которые можно использовать в URL-адресе, например. '+', '='
Привет ... Но я использую метод HTTP POST, а не GET ... все еще нужно urlencode полезной нагрузки данных публикации?
да. HttpMethod не имеет значения. Не забудьте декодировать строку в контроллере, чтобы преобразовать ее обратно в исходную строку base64.
да.... это работает.... ..большое спасибо...





Возможный дубликат Передача строк в кодировке base64 в URL