Каждый раз, когда я отправляю запрос, в ответе говорится, что произошла ошибка 500 Server.Тем не менее, я контролирую обе стороны этого процесса, и сервер не ошибается.Идеи ?!
Вот как мы настраиваем HttpClient для отправки запроса.Кстати, этот Клиент размещен в Microsoft Dynamix CRM Online (в случае, если это имеет значение):
client = new HttpClient();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/html"));
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/javascript"));
И вот как мы его называем, из CRM Online, и получаем ответ:
var task = client.PostAsyncSecurely("api/Invoices/CreateInvoice/", iHelper);
var result = task.GetAwaiter().GetResult();
Да, мы создали наше собственное расширение, но все, что он делает, это конвертирует модель, которую мы передаем для отправки (и она работает, в соответствии с принимающим API).
public static Task<System.Net.Http.HttpResponseMessage> PostAsyncSecurely(this System.Net.Http.HttpClient client, string requestUri, System.Net.Http.ByteArrayContent content)
{
return client.PostAsync(requestUri, content);
}
Мы пытались создавать ответы несколькими способами в веб-API на нашем сервере, но безрезультатно:
[HttpPost]
public HttpResponseMessage CreateInvoice([FromBody]Object invoiceHelper)
return Request.CreateResponse(HttpStatusCode.OK);
return new HttpResponseMessage(HttpStatusCode.OK);
return this.StatusCode(HttpStatusCode.OK);