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

发布时间:2024年01月17日

曾经和一个数据量比较大(日订单量峰值达到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;
}

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

文章来源:https://blog.csdn.net/u010407072/article/details/135596239
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。