webapi服务 请求另外一个服务 报json格式错误Additional text encountered after finished reading JSON content
问题描述:
各位大佬帮忙看看 , 我自己的webapi服务 请求另外的一个服务的接口 报一个json字符串格式错误的问题 Additional text encountered after finished reading JSON content: ,. Path "", line 1, position 21. 这个字符串是我自己拼接的又没有特殊字符 我用winform程序把json 和 请求方法 一模一样的复制过去 完全没问题
string json = "{\"Header\":{\"SessionID\":\"2021112610381201111234\",\"MachineCode\":\"test0022\",\"CommandType\":\"ProductionLock\"},\"Data\":{\"Lane\":\"0\",\"Reason\":\"测试\"}}";
try
{
string ss = HttpHelper.CreatePostHttpResponse(url, json);
string rs = ss.Substring(ss.IndexOf("\"ReturnCode"));
rs = "{" + rs.Substring(0, rs.Length - 1);
ret = JsonConvert.DeserializeObject<RetData>(rs)
}
catch (Exception ex)
{
return ex.Message;
}
/// <summary>
/// 创建POST方式的HTTP请求
/// </summary>
public static string CreatePostHttpResponse(string url, string data)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json;charset=utf-8";
request.ContentLength = Encoding.UTF8.GetByteCount(data);
Stream myRequestStream = request.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream);
myStreamWriter.Write(data);
myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
答
是请求的接口报这个错误,还是题主在反序列化为RetData时报错?应该是反序列化时出错吧,那应该是rs变量内容有问题,断点看下rs变量有什么内容,或者用IO写入到文件中