[英]Calling a Java webservice from C# .NET Core (specifically Workday). How to get xml attributes in the soap request
[英]How i get response from ASYNC SOAP webservice in .net core?
首先,.net核心中的im newbie和.net中的soap webserive。 我们正在研究一个有关从基于SOAP的webserive(来自WSDL)中请求数据的项目。 我对此表示歉意,也许这个问题看起来如此简单或奇怪。
该系统的工作方式如下:第一个客户端从我们的Web API请求保存请求,然后为SOAP Web服务添加一些身份验证信息并从SOAP Web服务进行查询。 比SOAP Web服务返回一个唯一的queryNumber以便以后查询结果。 问题是我无法从响应获取queryNumber。
我使用WCF Web服务提供程序通过WSDL地址添加了引用,并且所有方法都在引用中实现: saveRequest (参数,用于身份验证的用户ID,用于身份验证的pass), saveResponse (queryNumber), saveAsync (与saveRequest相同)。 saveAsync方法已调用saveRequest。
saveAsync的用法似乎在参考中像这样:
ServiceClient.saveResponse = await ServiceClient.saveAsync(params);
所以我写了这段代码:
static async Task<ServiceClient.saveResponse> _run (params){
Service.ServiceClient = new Service.ServiceClient();
ServiceClient.saveResponse getResult= await ServiceClient.saveAsync(params);
return getResult;
}
而且比我在主要或其他地方调用此异步方法。 但是,当我调用该异步方法并尝试获取queryNumber时,出现了内部服务器错误(500)。
实际上,我使用FormBody(带有XML)发送参数。
我使用SOAPUI尝试了相同的任务,并获得了结果XML,没有任何错误。 我也跟踪了代码,发现代码卡在其中了:
ServiceClient.saveResponse getResult= await ServiceClient.saveAsync(params);
我不确定我是否正确使用了代码块。 您是否看到有关代码的任何错误提示? 还是滥用? 也许我错误地使用了异步方法,但是saveAsync希望代码块完全像这样。
先感谢您。
编辑1:以HTTPS:// ...开头的第三方SOAP网络。 错误与此有关吗?
我有解决方案。 问题是关于.Net Core 2.0版本或System.ServiceModel.Http版本。 我在代理后面应用了.Net Core 2.0连接到SOAP服务中的步骤,并解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.