Проверка ответа Web API всегда возвращает ошибку 500 (без ошибки на сервере) - PullRequest
0 голосов
/ 04 октября 2018

Каждый раз, когда я отправляю запрос, в ответе говорится, что произошла ошибка 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);

1 Ответ

0 голосов
/ 20 ноября 2018

Чтобы использовать Dynamics CRM Online WebAPI, необходимо зарегистрировать приложение в качестве приложения разрешения в Azure AD вашего клиента ( Microsoft Link )

Другой способ подключения к Dynamics.CRM Online использует SDK (если вы используете .NET Language) https://docs.microsoft.com/en-us/dotnet/api/microsoft.xrm.sdk.messages.createrequest?view=dynamics-general-ce-9

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...