private async Task DoRegister()

in client/Apache.ShenYu.Client/Registers/ShenyuHttpRegister.cs [110:148]


        private async Task DoRegister<T>(T t, string path, string type)
        {
            var content = JsonConvert.SerializeObject(t);
            foreach (var server in this.ServerList)
            {
                if (!this.AccessTokens.TryGetValue(server, out var accessToken))
                {
                    await this.SetAccessToken(server);
                    if (!this.AccessTokens.TryGetValue(server, out accessToken))
                    {
                        throw new NullReferenceException("access token is null.");
                    }
                }

                var requestMessage = new HttpRequestMessage(HttpMethod.Post, new Uri($"{server}{path}"));
                requestMessage.Headers.Add(Constants.XAccessToken, accessToken);

                requestMessage.Content = new StringContent(
                    content,
                    Encoding.UTF8, "application/json");

                var resp = await this._client.SendAsync(requestMessage);
                if (resp.IsSuccessStatusCode)
                {
                    this._logger.LogInformation("succeeded to register type: {}, content: {}", type, content);
                }
                else
                {
                    var respContent = string.Empty;
                    if (resp.Content != null)
                    {
                        respContent = await resp.Content.ReadAsStringAsync();
                    }

                    this._logger.LogWarning("failed to register type: {}, content: {}, response: {}", type, content,
                        respContent);
                }
            }
        }