src/sample/XXX.Plugin.Tdengine/Proxy/ITaosProxy.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System.Net;
using WebApiClientCore;
using WebApiClientCore.Attributes;
using HttpPostAttribute = WebApiClientCore.Attributes.HttpPostAttribute;
namespace XXX.Plugin.Tdengine
{
/// <summary>
/// 主机地址配置在 appsetting.json >NetProProxyOption
/// 获取或设置Http服务完整主机域名 例如http://www.abc.com设置了HttpHost值,HttpHostAttribute将失效
/// [HttpHost("https://www.taosdata.com/docs/cn/v2.0/connector#restful")]
/// </summary>
public interface ITaosProxy
{
/// <summary>
/// 执行sql
/// https://www.taosdata.com/docs/cn/v2.0/connector#restful
/// </summary>
/// <param name="sql"></param>
/// <param name="database"></param>
/// <returns></returns>
[HttpPost("/rest/sqlt/{database}")]
[ApiClientFilter]
ITask<dynamic> ExecuteSql([RawStringContent("text/plain")] string sql, string database = "test");
}
public class ApiClientFilter : ApiFilterAttribute
{
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public override Task OnRequestAsync(ApiRequestContext context)
{
var configuration = context.HttpContext.ServiceProvider.GetService<IConfiguration>();
configuration.GetValue<string>("Taos:Name");
configuration.GetValue<string>("Taos:Pwd");
string name = "root";
string pwd = "taosdata";
string token = $"{name}:{pwd}".Base64();
context.HttpContext.RequestMessage.Headers.Add("Authorization", $"Basic {token}");
var uri = context.HttpContext.RequestMessage.RequestUri;
Console.WriteLine($"request uri is:{uri}");
return Task.CompletedTask;
}
public override async Task OnResponseAsync(ApiResponseContext context)
{
var _logger = context.HttpContext.ServiceProvider.GetService<ILogger<ApiClientFilter>>();
try
{
if (_logger != null)
{
后面还有 54 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。