ASP.NET Code Web API 接收不到客户端推送的数据(C#)

曾经和一个数据量比较大(日订单量峰值达到50000+)的客户做系统对接。开始时把接收的内容写在Controller方法的参数对象里头,在本地测试时,一直都很顺利。当与客户做联调测试,接收对方发送过来的内容时,时而成功,时而失败,为此还与对方IT好一番争论。但谁让客户是上帝呢,山穷水复疑无路,柳暗花明又一村。为此,我在Controller的基类里做了一个通用的函数用于捕捉客户端推送过来的内容,再解析为所需要的对象类型。虽然哆嗦点,但目前为止,运行状态良好。

上代码:

protected const string REQ_CONTENT = "content";

protected async Task<MyDictionary> GetRequestAsync(HttpRequest request)
{
    var result = new MyDictionary();

    var data = string.Empty;

    try
    {
        request.HttpContext.Request.EnableBuffering();

        var stream = new StreamReader(request.HttpContext.Request.Body);

        data = await stream.ReadToEndAsync();

        request.HttpContext.Request.Body.Seek(0, SeekOrigin.Begin);
    }
    catch (Exception ex)
    {
        data = ex.Message;

        //logger.Error($"Readed request data failed.Error message:{ex.Message}.");
    }

    if (!string.IsNullOrWhiteSpace(data))
    {
        result.Add(REQ_CONTENT, data);
    }
    else
    {
        result.Add(REQ_CONTENT, "");
    }

    return result;
}

实属班门弄斧不自量,权作抛砖引玉撩一笑。

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 09:34:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 09:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 09:34:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 09:34:02       20 阅读

热门阅读

  1. 【嵌入式-汇编】常用汇编指令

    2024-01-17 09:34:02       29 阅读
  2. 【PGSQL】date_trunc 函数

    2024-01-17 09:34:02       33 阅读
  3. 电脑DIY-Intel处理器

    2024-01-17 09:34:02       26 阅读
  4. 升级openssl到3.X版本

    2024-01-17 09:34:02       31 阅读
  5. 中国汽车车灯市场预测与投资战略报告(2024版)

    2024-01-17 09:34:02       33 阅读
  6. iOS和安卓端个人踩坑史

    2024-01-17 09:34:02       32 阅读
  7. RabbitMQ

    RabbitMQ

    2024-01-17 09:34:02      30 阅读
  8. 【征服redis4】一文征服redis的Lettuce客户端

    2024-01-17 09:34:02       31 阅读
  9. Python3 如何做数据类型转换

    2024-01-17 09:34:02       33 阅读
  10. uniapp 实现tabBar-switchTab之间的传参

    2024-01-17 09:34:02       34 阅读
  11. webpack打包机制,构建过程和配置

    2024-01-17 09:34:02       37 阅读