将Base64字符串发送到C#MVC Api收到错误

时间:2015-07-09 06:31:03

标签: c# json rest asp.net-mvc-4 base64

我将[]字节转换为带有此行的基本64字符串

 filebase64 = Convert.ToBase64String(attachmentcontetn.Content);

我把filebase64放在像这样的json中:

 "{'RequestId':'" + requestforminst.Id
                                                     + "','filebase64':'" + filebase64 + "'}"

然后我用这个方法将它发送到rest api:jsoninput是RestApi的InputParameter,其中包含Base64数据和一些附加数据

  string webapiUrl = generalurl;
        using (var client = new WebClient())
        {
            client.Encoding = Encoding.UTF8;
            client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

            string logineusername = username;
            string logineduserpassword = password;

            client.Credentials = new NetworkCredential(logineusername, logineduserpassword);
            var result = client.UploadString(webapiUrl, "POST", "=" + jsoninput);
            return result;

并在REST Api中我将Base 64转换为[]字节使用以下行:

Convert.FromBase64String(modeldata.filebase64)

但它得到错误:" Base-64字符数组或字符串的长度无效。" befor调用restapi我检查了我的base64数据并将其转换为[]字节,它工作正常,并在destenition服务器得到错误

2 个答案:

答案 0 :(得分:0)

您无法在webapi上发布字符串,也许您应该定义一个类或将接收类型修改为动态。

答案 1 :(得分:0)

也许你应该在发布之前使用HttpServerUtility.UrlEncode对你的base64字符串进行编码