每次发送请求时,响应都说它出现500服务器错误。但是,我控制了此过程的两个方面,并且服务器没有出错。想法?!
这是我们设置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);
}
我们尝试在服务器的Web API中以多种方式创建响应,但无济于事:
[HttpPost]
public HttpResponseMessage CreateInvoice([FromBody]Object invoiceHelper)
return Request.CreateResponse(HttpStatusCode.OK);
return new HttpResponseMessage(HttpStatusCode.OK);
return this.StatusCode(HttpStatusCode.OK);
答案 0 :(得分:0)
要使用Dynamics CRM Online WebAPI,您需要在租户(Microsoft Link)的Azure AD中将您的应用程序注册为允许应用程序
连接到Dynamics CRM Online的另一种方法是使用SDK(如果使用的是.NET语言)https://docs.microsoft.com/en-us/dotnet/api/microsoft.xrm.sdk.messages.createrequest?view=dynamics-general-ce-9
希望有帮助