首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpClient Time_wait

HttpClient Time_wait
EN

Stack Overflow用户
提问于 2021-03-22 13:47:58
回答 1查看 26关注 0票数 0

我用HttpClient制作了unity到influxdb的连接器。但是这个问题实在是太棒了,我该怎么做这个代码编辑呢?我在3周前学会了c# ....我尝试了私有静态只读HttpClient客户端=新的HttpClient();

但还有更多新的创建tcp...time_wait

这是我的代码

代码1

代码语言:javascript
复制
public async Task GetPositionAsync()
{
    using (HttpClient client = new HttpClient())
    {
        using (HttpResponseMessage response = await client.GetAsync(Url))
        {
            using (HttpContent content = response.Content)
            {
                 getdata = content.ReadAsStringAsync().Result;
            }
        }
    }

    client.Dispose();
}

代码2

代码语言:javascript
复制
    HttpClient client = new HttpClient();

    int refreshTime = 5;

    client.DefaultRequestHeaders.Add("Authorization", "Token " + token);
    //client.DefaultRequestHeaders.Add("Accept", "application/csv");
    client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip");

    var fluxQuery = "from(bucket: \"DT_Object\")\n"
                   + "|> range(start: -6h)"
                   + "|> filter(fn: (r) => r[\"_measurement\"] ==\" NPC\")"
                   + "|> filter(fn: (r) => r[\"NAME\"] == \"NPC\")"
                   + "|> filter(fn: (r) => r[\"_field\"] == \"X\" or r[\"_field\"] == \"Y\" or r[\"_field\"] == \"Z\")"
                   + "|> aggregateWindow(every: " + refreshTime + "s, fn: mean, createEmpty: false)"
                   + "|> yield(name: \"mean\")";

    var data = new StringContent(fluxQuery, Encoding.UTF8, "application/vnd.flux");

    var response = await client.PostAsync(requestUrl, data);
    Debug.Log(response);
    // var responseString = await client.GetStringAsync(requestUrl);
    // Debug.Log("get data : " + responseString);
    //response.Content = "application/CSV";
    var result = response.Content.ReadAsByteArrayAsync();

    Debug.Log("데이터 읽어줘 " + result.ToString());

    if (result == null)
    {
        Debug.Log("결과없음");
    }

    Debug.Log("result : " + result);



    client.Dispose();
}
EN

回答 1

Stack Overflow用户

发布于 2021-03-23 00:48:46

最简单的解决方案是reuse HttpClient

代码语言:javascript
复制
private static readonly HttpClient client = new();
public async Task GetPositionAsync()
{
    using (HttpResponseMessage response = await client.GetAsync(Url))
    {
        using (HttpContent content = response.Content)
        {
             getdata = await content.ReadAsStringAsync();
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66740892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档