Я тестирую WSO2 Api Manager.
У меня есть некоторые работающие Apis, и я должен интегрировать их с Api Manager 2.6.0. Я сделал некоторый тест, и все запросы Get работают очень хорошо, но когда я делаю Post Request, иногда происходит сбой. По какой-то причине параметры из тела являются нулевыми, в другой раз параметры принимаются API.
Однако, если я делаю запросы без Api Manager, они все время работают хорошо.
Мои API разработаны в .Net Web Api 2.0.
Это мой код для вызова API, я провожу некоторые тесты с HttpClient и RestSharp, получая одинаковый результат. Однако, когда я тестирую с помощью Postman, APIS всегда работает нормально, через API Manager.
Пример использования HttpClient:
public async Task PostHttpClient(TarificacionParametros entidad, string url)
{
var personaJson = JsonConvert.SerializeObject(entidad);
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Clear();
//httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", BEARER);
HttpContent httpContent = new StringContent(personaJson, System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
if (response.IsSuccessStatusCode)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<object>(responseBody);
}
}
Пример использования Restsharp:
public async Task PostRestSharp(TarificacionParametros entidad, string url)
{
var client = new RestClient(url);
var request = new RestRequest(Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddJsonBody(entidad);
Console.WriteLine(entidad.Capital);
// easily add HTTP Headers
request.AddParameter("Authorization", "Bearer " + BEARER, ParameterType.HttpHeader);
var response = client.Execute<object>(request);
}
Примечание: я не публикую код API, потому что он хорош, у них есть время для работы с любой проблемой на производстве, теперь нам просто нужно интегрировать их с WSO2 Api Manager.
Привет