任何帮助将不胜感激
我有一个通用类,它促进WebAPI调用,它已经存在了很长时间,并且没有任何问题。今天,我遇到一个错误,不确定在哪里跟踪问题。确切的错误是
{"Unexpected character encountered while parsing value: [. Path 'PayLoad', line 1, position 12."}
通话结果是我要回去
"{\"PayLoad\":[\"file_upload_null20180629155922²AAGUWVP2XUezeM3CiEnSOw.pdf\"],\"Success\":true,\"Message\":\"1 File(s) Uploaded\",\"Exceptions\":[]}"
哪个看起来正确,是我从服务电话中得到的期望
这是我所说的突然退出工作的方法,它在最后一行失败
public static TR WebApiPost(string serveraddress, string endpoint, object data)
{
HttpResponseMessage msg;
var clienthandler = new HttpClientHandler
{
UseDefaultCredentials = false,
Credentials = new NetworkCredential(user, password, domain)
};
using (var client = new HttpClient(clienthandler) { BaseAddress = new Uri(serveraddress) })
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
msg = client.PostAsync(endpoint, new StringContent(new JavaScriptSerializer().Serialize(data), Encoding.UTF8, "application/json")).Result;
}
var result = msg.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<TR>(result);
}
最后是真正拨打电话的那一行(没关系)
returned = CallHelper<ResultStatus<string>>.WebApiPost(serviceurl, sendFileUrl, model);
答案 0 :(得分:0)
尚不清楚您的Web服务从何处获取PayLoad的值,因此该值很可能在其开始处具有字节顺序标记(BOM)。如果要返回最初是Unicode编码文件的内容,则尤其如此。 请注意,在调试器中查看字符串时,物料清单不可见。
在您的Web服务上,请确保您未返回PayLoad值的BOM。在字符串开头检查此字节序列:
0xEF,0xBB,0xBF
有关字节顺序标记的更多信息: https://en.wikipedia.org/wiki/Byte_order_mark