是否可以使用C#使用其定义的方法将数据发送到特定的需要登录的Web服务,而无需使用HttpWebRequest?

问题描述 投票:0回答:1

我可以访问包含SendData方法的特定Web服务的WSDL文件-基本上,我指定要发送的TimeStamp和Value。我将WSDL文件作为连接服务上传到Visual Studio 2019中的项目中(添加->连接服务-> Microsoft WCF Web服务参考提供程序->浏览->添加了WSDL文件的位置并指定了包含SendData方法的服务)。之后,我创建了一个新客户端:

ServiceSoapClient client = new ServiceSoapClient(ServiceSoapClient.EndpointConfiguration.ServiceSoap);

添加的凭据(Web服务需要登录):

client.ClientCredentials.UserName.UserName = "test"; client.ClientCredentials.UserName.Password = "test";

创建了一个新的变量Data,其中包含TimeStamp和Value(方法要求的特定格式)。

此后,我调用了该方法:

client.SendData(Data);

但是它不起作用。没有引发任何错误或异常,但是数据在Web服务上不可见(Web服务还具有GUI)。我开始怀疑是否可以通过这种方式将数据发送到Web服务,或者是否有必要使用请求创建xml文件并使用HttpWebRequest?

也许有人可以帮助我找出问题所在,有没有办法检查,编译过程中发生了什么?不幸的是,我不能包含URI或WSDL文件,但是希望我对此问题的描述就足够了。预先感谢您的指导!

c# web-services httprequest webclient send
1个回答
0
投票
我发现在某些情况下Widdle Web服务的调用在Fiddler中不可见。在我的情况下,这是由于某些软件包不是最新的。通过Microsoft WCF Web服务参考提供程序连接Web服务后,会自动添加这些过时的程序包。

System.ServiceModel.Duplex / Http / NetTcp / Security全部安装在版本4.4中,而不是版本4.7。我使用Project-> Manage NuGet Packages更新了它们,现在我的请求在Fiddler中可见,并且设法验证了使用方法的正确性,但是当前可以访问Web服务(具有保存数据的功能)受限,这就是为什么结果在Web服务上(在GUI中)不直接可见的原因。

© www.soinside.com 2019 - 2024. All rights reserved.