Tag: soap

C#中的SOAP客户端无法访问WSDL文件

我正在与第三方合作,将我们的一些系统与他们的系统集成在一起,它们为我们提供了一个SOAP接口,用于在其连接的系统中进行某些请求和更改。 对我来说问题是他们不提供WSDL文件供我使用。 如果我有一个WSDL文件,那么运行提供的.NET命令(wsdl.exe)并生成一个代理类来与服务进行交互就是一件简单的事情。 没有WSDL文件,有一种“简单”的方法吗? 我有我们可以访问的所有function以及我需要发送的参数以及我应该期待的回报。 拥有没有WSDL文件的SOAP服务是否常见? (我问这个,因为我们将来会增加更多的外部系统) 有没有人针对无WDSL服务完成代理类或任何其他forms的客户端,并且有任何关于如何做的好指示?

C#亚马逊产品广告API

截至8月15日,亚马逊强制要求签署对其产品广告API的所有请求。 我以为我已经把一切都运行得很好但是当第15个终于出现时,我的Web应用程序停止工作,几乎从那以后我一直试图找出如何签署SOAP请求。 亚马逊有一个过时的示例代码,用于签署看似不起作用的请求 基本上,我需要知道如何使用最新的C#SOAP API和.NET 3.5为我的请求添加签名。 我希望我已经提供了足够的细节,如果我没有请随意请我详细说明。 谢谢 绕口令 更新:我正在使用MVC并且需要知道如何将Signature添加到ItemLookup或AWSECommerceService对象。 是否有包含签名值的属性? 它如何附加到请求? 在这个页面上 ,他们说我必须包含Signature和TimeStamp参数,但intellisense现在会显示任何这样的属性。

从C#直接将原始SOAP XML发送到WCF服务

我有一个WCF服务参考: http://…/Service.svc(?WSDL) 我有一个包含兼容SOAP信封的XML文件 … 现在,我想通过一些C#代码将这些原始数据直接发送到服务(并接收响应),而不使用Visual Studio服务引用。 这是可能的,如果是的话,怎么样?

读取XMLStreamReader时出错。 获得故障响应

我开发了一个应用程序,用户应该填写申请表并在最后付款。 要付款,用户应填写以下链接中的详细信息。 付款 应该在我开发的应用程序中输入相同的详细信息。 当我尝试使用上述细节运行代码时,我收到exception’读取XMLStreamReader时出错’。 代码如下 public void execute() { System.Net.ServicePointManager.Expect100Continue = false; System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; try { string uri = “https://xxx/Service?wsdl”; string soap = @” EA_DCD RCT033 EA_DCD- RCT033-31082017-001 —–BEGIN PKCS7—– MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIAwggNeMIIC RqADAgECAgRUDUiYMA0GCSqGSIb3DQEBCwUAMHExCzAJBgNVBAYTAklOMRIwEAYDVQQIEwlraGFq YW5lZWExEjAQBgNVBAcTCWtoYWphbmVlYTESMBAGA1UEChMJa2hhamFtZWVhMRIwEAYDVQQLEwlr aGFqYW5lZWExEjAQBgNVBAMTCWtoYWphbmVlYTAeFw0xNDA5MDgwNjExMzZaFw0xOTA4MTMwNjEx […]

为Bargain Finder Max Flight选择不同的回程航class

我正在开发一款由Sabre’s Soap Api提供动力的旅行应用程序。 我使用Given请求调用BargainFinderMax(BFM)端点 2017-05-19T17:33:49 2017-05-29T00:00:00 我从肥皂回复中得到以下信息: 两个OriginDestinationOption 一个。 一个包含前往目的地的航程段 湾 另一个包含从目的地返回的航class段。 每个OriginDestinationOption的FarePriceInfo包含整个行程的价格(包括UpTrip和Return行程) 考虑场景: OriginDestinationOption:a UpTrip – a :YYZ – LHR – 回程 – a :LHR – YYZ 总旅行价格= 900美元 OriginDestinationOption:b UpTrip – b :YYZ – LHR 回程 – b :LHR – YYZ 总旅行价格= 940美元 我的问题是: 如果我为Uptrip选择UpTrip -a ,我可以选择ReturnTrip – b作为回程吗? 如果没有上述问题,我是否遗漏了请求中的任何参数以启用该组合function。 谢谢你的帮助。

如何从WCF Web服务返回XML?

有问题的Web服务必须在SOAP XML中返回存储过程的结果。 我可以从Web服务返回任何对象没问题,我甚至熟悉从.asmx服务序列化JSON但我完全不知道从Web服务返回XML的概念,其工作是从存储中检索结果程序。 这对我来说非常重要,所以任何帮助都要认真对待。 谢谢。

使用PHP和SOAP的Web服务的C#DateTime类型

我使用C#编写的Web服务,在我的(客户端)端使用PHP。 SOAP __getTypes返回一个期望参数为dateTime birthDate 。 我尝试以不同的方式发送参数,比如 $date = new DateTime(“now”); $wsclient->SomeFunction(array($date->format(“Ymd\TH:i:s”)); 或$date->format(‘c’)我甚至把它写成字符串1932-11-12T00:00:00等等。 我没有得到soapexception,但是收到birthDate值的函数返回是0001-01-01T00:00:00 。 我和Web服务的开发人员开了个会,他向我展示了当他将System.DateTime类型变量传递给它正常工作的函数时,但是他在C#本地完成了它,而不是通过Web服务,只是在做 date = new DateTime(1999,9,9,0,0,0); SomeFunction(date); 我想知道的是如何从PHP传递c# DateTime类型。 我想我正在使用$date->format(‘c’)或$date->format(“Ymd\TH:i:s”) 。 我只想确保这部分代码是正确的,如果是这样,请在其他地方搜索问题。 更新:我们得到的是:他们改变了代码。 数据类型保持不变(DateTime),我不知道他们在那里做了什么,但如果我得到任何信息,我会保持这篇文章是最新的。 几年后:他们根本不知道他们在做什么,我遇到了问题,这是我无法解决的问题。 如果WSDL请求dateTime并且你正确地发送它(SOAP没有抛出exception)并且它不能正常工作,那么你应该在另一边寻找问题,当然。 他们制作了这些以及其他一些技巧,并指责我获得一些时间,因为他们的工作不是完整或不完整。 他们做得很好,因为我是新人,只有一家公司的网络开发人员,我20岁,并且对于那些从我出生以来几乎一直担任开发人员的人并不十分自信。 最后,当我们在项目的最后一部分工作时,他们说我们花了太多时间来完成它并将其交给其他开发人员。 最后一部分很明显,这个项目没有前途,因为架构是错误的。 该项目尚未发布(3年后),尽管他们在列表2公司(我知道)切换到客户端实施它。 这是我职业生涯中最糟糕的机会。

使用gzip压缩HttpWebRequest

我正在开发一个.NET 4.0控制台应用程序作为SOAP Web Service客户端,它将数据(POST)发送到第三方。 我无法控制服务器端的Web服务。 第三方确实提供了WSDL’s使用,我能够导入它们并合理地使用它们。 但是,需要使用gzip压缩请求消息,并且我无法终身使用代理服务来弄清楚如何使用gzip 。 这个关于SO的主题让我相信,如果不能控制客户端和服务器代码,就无法压缩请求。 作为这一发现的结果,我在我的应用程序中编写了代码,以在XDocument对象中手动创建SOAP XML ; 然后,填充我之前编写的客户端应用程序要使用的WSDL代理类对象中的值。 此客户端的第一个要求是通过gzip发送压缩的消息。 经过一些研究,我看到答案很简单,就像在请求头中添加HttpRequestHeader.AcceptEncoding, “gzip, deflate”一样简单。 不幸的是,这样做似乎不起作用。 目前,我检索的证书不是真正的证书。 在部署到测试环境进行实际的服务测试之前,我试图使代码尽可能健全。 有没有办法通过代理调用( wsdl )压缩请求? 为了正确压缩HttpWebRequest我是否缺少一些东西? 可能会出现其他错误,导致返回错误消息? 如果请求本身没问题,我希望有关身份validation的其他消息无效 。 有没有办法通过app.config进行压缩? 下一组要求我对如何处理/做什么感到困惑。 假设我已经将请求的ContentType设置为,我如何(以及什么)添加content-transfer-encoding片段以添加请求? 如果ContentType不正确,我该如何添加此信息? 具有MTOM编码附件的SOAP Evenlope的内容类型必须是“application / xop + xml”,content-transfer-encoding必须是8位。 我已经完成了下面代码的几次迭代,但是,我相信相关的代码片段是最简单的代码。 如果有其他信息有用,请告诉我。 创建HttpWebRequest的方法: private static HttpWebRequest CreateWebRequest(SoapAction action) { string url = GetUrlAddress(action); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Headers.Add(HttpRequestHeader.AcceptEncoding, […]

将generic.list转换为ArrayOfInt,以便通过SOAP传输到Web服务

我正在尝试使用SOAP协议将一个通用的整数列表从客户端应用程序传递给Web服务。 当我尝试将列表作为参数传递给Web服务中声明的Web方法时,我收到错误“无法从generic.list转换为ArrayOfInt”。 我该如何解决这个问题? // web service method [WebMethod(CacheDuration = 30, Description = “Returns the calculated sum value of all numbers supplied in the list”)] public int CalculateListSum(int[] list) { int _sum = 0; foreach (int _val in list) { _sum += _val; } return _sum; } // client app buton click event private void btnRun_Click(object […]

将SOAP标头添加到ASMX服务请求

我们获得了一组要使用的ASMX服务。 我们对如何实施这些服务没有发言权。 我们使用wsdl.exe工具生成了许多代理,但由于某些原因我不知道,这些生成的代理没有任何方法可以包含自定义SOAP头。 基本上,我需要一种方法将自定义标头数据添加到各种服务调用。 我知道SoapExtension类的存在,但不幸的是,由于所谓的性能问题,我们不允许使用它。 是否有任何其他方法可以在SOAP请求中自定义/添加标头数据?