对于非返回的ASP.Net脚本服务,返回HTTP 204与{“d”:null}

时间:2014-01-11 22:44:25

标签: asp.net web-services pagemethods

我们有一个不返回任何数据的ASP.Net Web方法,也就是说,它不应该返回任何数据,该方法是无效的。目前,响应是状态200 w /身体{“d”:null}。虽然这样可以正常工作,但令我困惑的是,它不是204(无内容)的响应状态,也没有正文。如果没有正文,任何人都知道如何让网络方法返回204?

1 个答案:

答案 0 :(得分:1)

好的,我发布时很懒。花了一些时间在JustDecompile中,答案似乎是“不”。具体来说,webmethod是从框架中的w /(System.Web.Script.Services.RestHandler.InvokeMethod)调用的:

object obj1 = methodData.CallMethodFromRawParams(obj, rawParams);
        string str1 = null;
        if (!methodData.UseXmlResponse)
        {
            str1 = string.Concat("{\"d\":", methodData.Owner.Serializer.Serialize(obj1), "}");
            str = "application/json";
        }

所以如果它是一个void方法,obj1将为null,但这没关系,它仍然使用前导“d:”的东西序列化。没办法避免它。哦,就像我在问题中所说的那样,这样做很好,只是希望204,因为没有“真正的”回应。