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第三方集成调用还是简单直接的。
后续大量使用的时候遇到问题具体的问题再记录。