D365 FO第三方集成(四)---客户端调用

客户端调用json-based服务非常简单,就是标准的http调用。
http调用首先要解决URL的组成,D365 FO json-based调用的url组成如下:
https://usnconeboxax1aos.cloud.onebox.dynamics.cn/api/services/{服务组名}/{服务名}/{方法名}
调用的代码很简单,如下所示:

 1 var request = HttpWebRequest.Create(ServiceGroupPreDeclarationPath);
 2             request.Headers[OAuthHelper.OAuthHeader] = OAuthHelper.GetAuthenticationHeader(true);
 3             request.Method = "POST";
 4 
 5             var inputString = txtRequestString.Text;
 6             var requestContract = new
 7             {
 8                 input = inputString
 9             };
10             var requestContractString = JsonConvert.SerializeObject(requestContract);
11 
12             using (var stream = request.GetRequestStream())
13             {
14                 using (var writer = new StreamWriter(stream))
15                 {
16                     writer.Write(requestContractString);
17                 }
18             }
19             using (var response = (HttpWebResponse)request.GetResponse())
20             {
21                 using (Stream responseStream = response.GetResponseStream())
22                 {
23                     using (StreamReader streamReader = new StreamReader(responseStream))
24                     {
25                         string responseString = streamReader.ReadToEnd();
26                         JToken jsonObject = JToken.Parse(responseString);
27                         string returnedString = jsonObject.Value<string>();
28                         MessageBox.Show(returnedString);
29                     }
30                 }
31             }

调用的代码非常简单,看代码就很明白了,唯一要说的是下面这几行代码

1 var requestContract = new
2             {
3                 input = inputString
4             };

这里是实例化了一个匿名类,注意这里的input,一定要与调用服务方法的入参的参数名保持一致,否则会报错,因为框架就是根据这个来识别调用参数的。
到这里D365 FO第三方集成的过程就完成了,整体来说D365 FO第三方集成调用还是简单直接的。
后续大量使用的时候遇到问题具体的问题再记录。

原文地址:https://www.cnblogs.com/Farseer1215/p/13121811.html