使用C#控制台的SAP B1服务层

2020-09-13 22:23发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好同行,

请如何通过C#控制台应用程序进行服务层API调用。

下面是我的代码,不起作用。

Httpclient.BaseAddress =新的Uri(ServiceUrl); Httpclient.DefaultRequestHeaders.Accept.Clear(); Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(" application/json")); Httpclient.DefaultRequestHeaders.Add(" User-Agent"," Mozilla/5.0(Windows NT 6.1; Win64; x64)AppleWebKit/537.36(KHTML,例如Gecko)Chrome/58.0.3029.110 Safari/537.36"); var json = Newtonsoft.Json.JsonConvert.SerializeObject(data); 使用(var parsedData = new StringContent(json,UnicodeEncoding.UTF8," application/json"))使用(var response = await Httpclient.PostAsync(" Login",parsedData))使用(var content = response.Content){sampleData = 等待content.ReadAsStringAsync(); 如果(string.IsNullOrEmpty(sampleData)){sampleData = response.ReasonPhrase; }

和下面的错误消息。

502代理错误代理服务器收到来自上游服务器的无效响应。 代理服务器无法处理请求 POST/b1s/v1/Login 原因:从远程服务器读取错误

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好同行,

请如何通过C#控制台应用程序进行服务层API调用。

下面是我的代码,不起作用。

Httpclient.BaseAddress =新的Uri(ServiceUrl); Httpclient.DefaultRequestHeaders.Accept.Clear(); Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(" application/json")); Httpclient.DefaultRequestHeaders.Add(" User-Agent"," Mozilla/5.0(Windows NT 6.1; Win64; x64)AppleWebKit/537.36(KHTML,例如Gecko)Chrome/58.0.3029.110 Safari/537.36"); var json = Newtonsoft.Json.JsonConvert.SerializeObject(data); 使用(var parsedData = new StringContent(json,UnicodeEncoding.UTF8," application/json"))使用(var response = await Httpclient.PostAsync(" Login",parsedData))使用(var content = response.Content){sampleData = 等待content.ReadAsStringAsync(); 如果(string.IsNullOrEmpty(sampleData)){sampleData = response.ReasonPhrase; }

和下面的错误消息。

502代理错误代理服务器收到来自上游服务器的无效响应。 代理服务器无法处理请求 POST/b1s/v1/Login 原因:从远程服务器读取错误

付费偷看设置
发送
3条回答
昵称总是被占用
1楼-- · 2020-09-13 22:40

您好安妮王子

您是否已提及SAP Note 2607373 用于服务层故障排除?

此处记录了相同的错误消息。

问候,

ANKIT CHAUHAN

SAP Business One支持

四川大学会员
2楼-- · 2020-09-13 22:36

您好ANKIT CHAUCHAN,

是的,我通过了SAP NOTE 2607373,但错误仍然存​​在。

正在我们的本地网络上运行服务层,如果使用javascript进行呼叫,但不能使用C#控制台应用程序,则可以正常工作。

shere_lin
3楼-- · 2020-09-13 22:50

嗨王子,

如果您确定SL已启动并正在运行,则有两种选择来使用它:

1)您可以使用WCF创建代理类并使用对象模型。 Maria Trinidad的帖子此处

您还可以从这篇文章中下载Windows窗体应用程序,以演示如何实现该功能。

2)您可以使用.NET中的一种HTTP类。 我个人更喜欢这种方式(至少您不能使用WCF使用SE脚本)。

通过这种方式,您需要注意以下几点:

  • 不应因为自签名证书而拒绝您的连接。 也许您需要实现证书验证回调。
  • 您的请求必须包含具有正确域的cookie(当我必须显式设置域时遇到问题)。
  • 请求标头必须传递必要的值,例如内容类型,保持活动状态等。为确保您具有正确的标头值,可以使用Postman和应用程序完成的Fiddler请求进行跟踪并比较标头。

一周热门 更多>