Tag: soap

在运行时使用和调用SOAP WebServices – 来自WSDL文件的动态Web服务客户端

需求: 客户在运行时提供SOAP Web服务的WSDL,即从文件共享位置选择WSDL文件。 使用WSDL,并在UI上调用Customer选择的Method并处理响应。 我无法使用MetadataExchangeClient,因为不会托管WSDL。 执行: var serviceDescription = ServiceDescription.Read(@”C:\Contacts.WSDL”); var metadataSection = new MetadataSection { Dialect = MetadataSection.ServiceDescriptionDialect, Identifier = serviceDescription.TargetNamespace, Metadata = serviceDescription }; var metadataSections = new List {metadataSection}; var metadatSet = new MetadataSet(metadataSections); var wsdlImporter = new WsdlImporter(metadatSet); var services = wsdlImporter.ImportAllEndpoints(); 路障: 上面的代码根本无法提取服务端点。 所以,我不得不手动创建一个服务端点。 我无法在步骤中列出上述WSDL中包含的所有方法及其关联的输入/输出(将在下面的变量operationName和operationParameters中使用) object retVal = instance.GetType().GetMethod(operationName) .Invoke(instance, […]

HTTP请求未经授权使用客户端身份validation方案’Ntlm’。 从服务器收到的身份validation标头是“Negotiate,NTLM”

我查看了大量的SO文章,甚至是其他网站,但似乎无法使这项服务正常运行。 我有一个我想要点击的SOAP服务,它的配置如下: 但是,从我的控制台应用程序中点击它时出现以下错误: HTTP请求未经授权使用客户端身份validation方案’Ntlm’。 从服务器收到的身份validation标头是“Negotiate,NTLM”。 有人可以帮帮我吗?

使用LINQ to XML来解析SOAP消息

我正在使用C#在Linq中加速XML并试图解析以下消息并且似乎没有取得多大进展。 这是soap消息,我不确定我是否需要使用命名空间。 这是我想要格式化的SOAP消息。 任何帮助将不胜感激。 我试图提取值。 谢谢。 1000 test I07 17090769 Y

C#WCF全球命名空间 – 皇家邮政

我有一个生成请求的WCF SOAP客户端。 这被服务器拒绝为无效请求。 我已经使用SOAPUI将其追溯到命名空间,但无法弄清楚如何让客户端生成所需的结果。 客户端是从wsdl生成的Web服务引用,并生成以下SOAP消息; 2015-07-23 2 some random number some reference number 正如您所看到的,名称空间正在各个元素上输出…… 我的工作示例在SOAP Envelope中定义了名称空间; 2015-07-23 2 some random number some reference number 根据我的理解,这不应该有所作为,但服务器只是拒绝请求。 在SOAPUI中修改我生成的请求之后,它肯定会导致问题,那么如何将两个命名空间定义v1和v2移动到SOAP Envelope,然后让正确的元素使用正确的前缀? 我的客户端使用以下function启动; private shippingAPIPortTypeClient GetProxy() { BasicHttpBinding myBinding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; shippingClient = new shippingAPIPortTypeClient(myBinding, new EndpointAddress(new Uri(shippingClientSandboxEndpoint), EndpointIdentity.CreateDnsIdentity(“api.royalmail.com”), new AddressHeaderCollection())); shippingClient.ClientCredentials.ClientCertificate.Certificate = certificate; return shippingClient; […]

HttpClient和SOAP(C#)

我正在尝试使用HttpClient类发送SOAP消息: 使用REST这样做很容易(代码来自这里 ): using System; using System.Net.Http; using System.Json; namespace ConsoleApplication39 { class Program { static void Main(string[] args) { HttpClient proxy = new HttpClient(); proxy.GetAsync(“http://localhost:14892/api/Bloggers”).ContinueWith((r) => { HttpResponseMessage response = r.Result; response.Content.ReadAsAsync().ContinueWith( (a)=> { foreach(var w in a.Result) { Console.WriteLine(w.ValueOrDefault(“Name”).ToString()); Console.WriteLine(w.ValueOrDefault(“Intrest”).ToString()); } }); }); Console.ReadKey(true); } } } 我想用SOAP做类似的事情。 我有主机( http://opensearch.addi.dk/2.2/ )和POST消息的SOAP消息: dc.title=zorro AND […]

如何在.net中调用没有wsdl的Web服务

我必须连接到不提供wsdl或asmx的第三方Web服务。 该服务的URL只是http://server/service.soap 我已经阅读了有关原始服务调用的这篇文章 ,但我不确定这是否是我正在寻找的。 此外,我已经要求wsdl文件,但被告知没有(并且不会有)。 我正在使用带有.net 2.0的C#,并且无法升级到3.5(所以还没有WCF)。 我认为第三方正在使用java,因为这是他们提供的示例。 提前致谢! 更新浏览url时获取此响应: SOAP-ENV:Server Cannot find a Body tag in the enveloppe

使用SignedXml类添加基于Id属性的引用时出现“格式错误的引用元素”

当有名称空间前缀时,无法通过Id属性签署元素: void Main() { var doc = new XmlDocument(); doc.LoadXml(“Zebra”); SignedXml signedXml = new SignedXml(doc); signedXml.SigningKey = new RSACryptoServiceProvider(); Reference reference = new Reference(“#_0”); signedXml.AddReference(reference); signedXml.ComputeSignature(); } ComputeSignature()将在这里失败’错误的参考元素’应如何做到这一点?

从c#服务器端调用asmx:可以在client元素中找到匹配此契约的端点元素

我在srv1上写了一个asmx webSerivce。 我在srv2上写了一个asp.net (原始文本:一个asp.net)项目的bll项目 。 两者都托管在同一个Web域下 我想从asp.net的bll项目中调用asmx(原文:asp.net(c#)代码)。 1)我添加了一个Web引用,但找不到任何教程如何真正调用引用的服务。 我试过了: private void GetTemplateComponentsData() { var service = new ServiceReference.GetTemplateParamSoapClient(); TemplateParamsKeyValue[] responsArray = service.GetTemplatesParamsPerId(id); foreach (var pair in responsArray) { TemplateComponentsData.Add(pair.Key, pair.Value); } } 但在执行第一行时出现以下错误: 无法在ServiceModel客户端配置部分中找到引用合同“ServiceReference.GetTemplateParamSoap”的默认端点元素。 这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。 我错过了什么? 2)我将asp.net proj和asmx从一个域迁移到另一个域。 有没有办法相对引用这个webservice?

拦截来自客户端的Web服务的SOAP消息

我有一个与Web服务通信的客户端。 我与之通信的类是通过wsdl.exe生成的C#类。 我现在想记录所有传入和传出的消息。 到目前为止我所做的是编写一个inheritance自动生成的C#类的类,并重写了GetReaderForMessage方法。 这样我可以或多或少地像这样访问传入的消息: protected override XmlReader GetReaderForMessage(SoapClientMessage message, int bufferSize) { System.Xml.XmlReader aReader = base.GetReaderForMessage(message, bufferSize); System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(aReader); string content = doc.InnerXml.ToString(); System.Xml.XmlReader aReader2 = System.Xml.XmlReader.Create(new System.IO.StringReader(content)); return aReader2; } 显然我对这个解决方案不太满意,因为基本上我正在创建两个xml读者。 一个用于读取SOAP消息的内容,另一个用于返回方法调用方。 另外,我不能用GetWriterForMessage方法做同样的事情。 但可能我只是做起来太困难了。 例如,是否可以直接读取SoapClientMessage对象的内容? 我已经阅读了一些文章,建议我应该在这里使用SoapExtensions,但是从我能理解的情况来看,这只有在我创建的’客户端’本身就是一个Web服务时才会起作用,在这种情况下它不是。 有什么建议?

Delphi SOAP Envelope和WCF

我正在开发一个提供soap接口的系统。 其中一个将使用该接口的系统在Delphi 7中编码.Web服务是使用WCF,基本的http绑定,SOAP 1.1开发的。 如果我使用SOAP UI(JAVA),该服务正常工作。 但delphi似乎在这里做了特别的事情;) 这是SOAP UI中消息的样子: ? 我不是delphi开发人员,但我开发了一个简单的测试客户端,看看出了什么问题。 这就是Delphi作为SOAP信封发送的内容。 253 WCF抛出一个德语错误…;) Es wurde das Endelement“Body”aus命名空间“ http://schemas.xmlsoap.org/soap/envelope/”erwartet 。 Gefunden wurde“Element”NS2:GetCustomerRequest“aus Namespace” http://services.xxx.de/xxx “”。 Zeile 1,职位599。 意味着什么 身体是预期的。 但是找到了元素“NS2:GetCustomerReques”。 现在我的问题是:我可以以某种方式改变Delphi创建信封的方式吗? 或者是使WCF使用这种消息格式的方法? 任何帮助是极大的赞赏!