【问题标题】:ServiceStack request POST body as query stringServiceStack 请求 POST 正文作为查询字符串
【发布时间】:2017-09-10 22:34:46
【问题描述】:

我正在尝试在 C# 中实现一个 IPN 处理程序,并且我使用 ServiceStack 作为我的后端框架。但是,我面临以下问题;

我正在尝试找到一种将请求的 POST 正文作为查询字符串的方法,但我没有这样做。我正在使用 IRequest.GetRawBody();但 POST 数据以格式化的方式返回以使其可读。

有什么方法可以轻松地将 POST 正文作为查询字符串?我想要类似于 PHP 的 $_POST 的东西,这样我就可以使用 HMAC SHA256 对数据进行加密,但我可以找到一种方法来做到这一点,而无需编写包含有关 POST 请求正文的硬编码详细信息的辅助类。我试过在线搜索和 ServiceStack 的文档,但没有找到任何有用的东西。

任何帮助将不胜感激,在此先感谢!

【问题讨论】:

    标签: c# post request servicestack query-string


    【解决方案1】:

    QueryString 位于 URL 而不是请求正文上。如果您只想访问发布的原始请求正文,您可以使用Request DTO implement IRequiresRequestStream,它告诉 ServiceStack 跳过反序列化正文,以便您可以自己反序列化它,例如:

    public class MyRequest : IRequiresRequestStream
    {
        public Stream RequestStream { get; set; }
    }
    public class MyServices : Service
    {
        public object Any(MyRequest request)
        {
            var bytes = request.RequestStream.ReadFully();
            var text = bytes.FromUtf8Bytes();
            ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-06-19
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 2014-07-19
      • 2019-03-24
      • 1970-01-01
      相关资源
      最近更新 更多