【问题标题】:Retrieve JSON Request Payload in WCF Service在 WCF 服务中检索 JSON 请求负载
【发布时间】:2011-02-04 23:21:00
【问题描述】:

我设置了一个 IErrorHandler,用于通过 log4net 汇集所有 wcf 错误。我想在将请求记录到服务器之前从请求中获取 json 有效负载数据,但我无法在 System.Web.Context.Current.Request 中找到它。我希望它在 InputStream 中,但那是空的。

我目前正在使用 jquery 进行 AJAX 发布,其中 json 作为数据传入。



$.ajax({
            url: 'http://test.com/myservice/service.svc',
            data: JSON.stringifyWcf({"id":1, "description":"thing"}),
            type: 'POST',
            processData: true,
            cache: false,
            contentType: 'application/json; charset=utf-8',
            timeout: 5000,
            dataType: 'json',
            success: function (result) {
                //do stuff
            }
});

我想在哪里获取有效载荷 {"id":1, "description":"thing"}

【问题讨论】:

  • 您提供的信息太少。你用 asp.net-mvc 标记它,但你在谈论 WCF。您是否尝试在 ASP.NET MVC 控制器中获取请求?
  • 如果您可以提供使用 jQuery 发送请求的代码示例以及控制器编码的基础知识,这将有助于我们找到答案。

标签: wcf


【解决方案1】:

我猜输入流是空的,因为它已经被消费了。您需要在系统读取输入流之前连接到系统以将其保存以供以后使用。见Request.InputStream is empty when service call is made

【讨论】:

    【解决方案2】:

    怎么样:OperationContext.Current.RequestContext.RequestMessage

    【讨论】:

    • 这看起来是正确的方向,但我仍在试图弄清楚如何准确地从中提取。
    猜你喜欢
    • 2023-01-27
    • 2023-03-29
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多