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);
}
}
}