我有一个asp.net网络服务器,我用它来尝试以Json数组的形式从客户端接收数据。一个小例子:
[{"Event":"Connect","Result":"Success"}]
尝试通过POSTMAN运行测试我收到500错误。
{ “Message”:“Type”System.Collections.Generic.IDictionary`2 [[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.Object,mscorlib,Version = 4.0。 0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'不支持反序列化数组。“, “StackTrace”:在System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal的System.Web.Script.Serialization.ObjectConverter.ConvertListToObject(IList列表,Type类型,JavaScriptSerializer序列化程序,Boolean throwOnError,IList& convertedList)\ r \ n中(Object o,Type type,JavaScriptSerializer serializer,Boolean throwOnError,Object& convertedObject)\ r \ n在System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o,Type type,JavaScriptSerializer serializer,Boolean throwOnError,Object& convertedObject) \ r \ n在System.Web.Script.Serialization.JavaScriptSerializer.Deserialize [T](字符串输入)\ r \ n在System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context,WebServiceMethodData methodData)“, “ExceptionType”:“System.InvalidOperationException” }
我试过调用一个空的Web方法,但我仍然收到错误,因为我还没有对该对象做任何事情,所以我就把这个错误抛弃了。
以下是我尝试调用的两种方法,第一种方法只是一个空方法,第二种方法是在我发现之前我需要接收一个json数组。
[WebMethod(Description = "test")]
public void TEST()
{
}
[WebMethod(Description="Webhook")]
public void Webhook()
{
string message = null;
var req = new StreamReader(HttpContext.Current.Request.InputStream);
req.BaseStream.Seek(0, SeekOrigin.Begin);
string body = req.ReadToEnd().ToString();
// Parse through json object and do things
}