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

这是我的代码
代码1
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
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();
}发布于 2021-03-23 00:48:46
最简单的解决方案是reuse HttpClient
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();
}
}
}https://stackoverflow.com/questions/66740892
复制相似问题