我将[]字节转换为带有此行的基本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服务器得到错误
答案 0 :(得分:0)
您无法在webapi上发布字符串,也许您应该定义一个类或将接收类型修改为动态。
答案 1 :(得分:0)
也许你应该在发布之前使用HttpServerUtility.UrlEncode对你的base64字符串进行编码