У меня есть клиент C #, который вызывает REST API и регистрирует мои данные.
Мой код клиента очень прост:
public class Tester
{
private readonly string _baseUri = "URI";
private readonly string _createUpdateLogUri = "v1.0/log";
private readonly HttpClient _httpClient;
private readonly MediaTypeHeaderValue _textPlainContent = MediaTypeHeaderValue.Parse("text/plain");
private readonly Encoding _encoding = Encoding.GetEncoding("ISO-8859-1");
public Tester()
{
_httpClient = new HttpClient
{
BaseAddress = new Uri(_baseUri),
Timeout = new TimeSpan(0, 5, 0)
};
}
public void Log(Head head, string ticket, string clientIp, string clientName, string headIp, string headName)
{
var main = new Main
{
Ticket = Convert.ToBase64String(_encoding.GetBytes(ticket)),
Application = head.ApplicationCaller,
ClientApplication = head.ApplicationCode,
ClientIp = clientIp,
ClientName = clientName,
ClientUser = head.User,
Command = head.Command,
HeaderIp = headIp,
HeaderName = headName,
HeaderTimestamp = DateTime.UtcNow,
Module = head.Module,
Guid = head.CallIdentifier,
CreatedTimestamp = DateTime.UtcNow,
};
var mainToStringContent = ObjectToStringContent(main);
var headToXml = XmlHelper<Head>.SerializeObjectToXml(head);
var headToBytes = _encoding.GetBytes(headToXml);
var headContent = new ByteArrayContent(headToBytes, 0, headToBytes.Length);
headContent.Headers.ContentType = _textPlainContent;
var form = new MultipartFormDataContent
{
{
headContent, "header", "head.txt"
},
{
mainToStringContent, "main"
}
};
try
{
var result = _httpClient.PostAsync(_createUpdateLogUri, form).Result;
}
catch (SocketException e)
{
Console.WriteLine(e);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
private StringContent ObjectToStringContent<T>(T myObject)
{
var jsonSettings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
};
var objectToJson = JsonConvert.SerializeObject(myObject, Formatting.Indented, jsonSettings);
return new StringContent(objectToJson, _encoding);
}
}
Чтобы проверить, что вызовы успешны, я собираю трафик с помощьюfiddler, и когда клиент выполняет больше вызовов, в некоторых случаях (например, 4/100) я получаю эту ошибку.
[Fiddler] Не удалось установить соединение с URI.Ошибка: ConnectionRefused (0x274d).System.записано.
Как я могу решить эту проблему ??Мой код или трафик на моем сервере?Заранее спасибо за ваши ответы.