问题标签 [soaphttpclientprotocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
20086 浏览

c# - 无法使用 SoapHttpClientProtocol 连接到远程服务器

客户向我提供了他们在 .net asmx webservice 的位置。我创建了一个库,我在我的 Web 应用程序中使用它来与他们的 Web 服务进行通信。

在我的库中,我创建了对 asmx 的 Web 引用

这是我调用他们服务的代码

客户开发了一个测试应用程序来测试他们的服务并且它可以工作。但是,我的应用程序在他们的系统上部署时失败。我无法单步执行代码,因为客户端没有将服务暴露在他们的网络之外。这是由他们开发的,仅通过 xml 文件和他们的 wsdl 提供示例输出。

异常详情:

我的类库的 App.config 具有对服务的 Web 引用和执行调用的类库。我的网络应用程序使用了类库

已解决:这在我修改了我的原始代码后有效

0 投票
1 回答
8486 浏览

c# - SoapHttpClientProtocol 日志响应 xml

几天来,我们的应用程序出现问题。我们使用 SoapHttpClientProtocol 来调用 java mbean。这基本上是调用 java web 服务来调用方法。

我们的问题是有时我们会遇到以下异常:

XML 文档中存在错误 (1, 172089)。在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,字符串 encodingStyle,XmlDeserializationEvents 事件)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,字符串 encodingStyle)在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse( SoapClientMessage 消息、WebResponse 响应、Stream responseStream、Boolean asyncCall) 在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 在 DynamicMBeanResourceBinding.Invoke(OperationRequestType ManagedResourceOperation) 在 JMXConnectorService.cs:line 781 在 JMXWSClient .InvokeMethodOnObject(String objectName, String methodName, ParameterType[] paramValue) in connectivity\Client.cs:line 132

原因:文件意外结束。以下元素未关闭: 图标

我们在通信层的最后一个代码是:

在被框架反序列化之前,有什么方法可以记录响应 xml?非常欢迎任何帮助或想法。

0 投票
1 回答
2227 浏览

c# - 使用 GetWebRequest 修改 SOAP 请求

我正在尝试动态修改对 ASMX 服务的 SOAP 请求中的 XML 数据。

我重写GetWebRequest()了类中的方法,SoapHttpClientProtocol以便读取和修改RequestStream包含的 XML 数据。

问题是,请求似乎是空的,里面没有任何数据。这是因为尚未生成和序列化 SOAP 数据还是我做错了什么?

0 投票
0 回答
287 浏览

c# - 需要在对 Web 服务的 SOAP 请求中具有自闭合元素

我正在开发一个使用第三方 Web 服务的 C# 客户端。我有他们的 wsdl 和 xsd,几乎一切正常。我遇到的唯一问题是该服务需要在数组参数中自动关闭元素,但是 SoapHttpClientProtocol(VS 在从 wsdl 创建 Web 引用类时用作继承类)正在发送空元素。我已经使用soapUI对此进行了测试,并验证了该服务将接受数组中的自关闭元素或具有数组名称的自关闭元素(因此没有子元素),但是当它接收到空元素时会引发错误.

当没有数据存在时,如何将 SOAP 工厂设置为使用自闭合元素?我在网上搜索过,似乎以前没有问过这个问题。

0 投票
1 回答
893 浏览

header - 使用动态服务代理传递 wsse 安全标头

我正在尝试使用需要 wsse 标头的服务

我正在动态创建代理

我如何将标题传递给这个。我做了一些研究并安装了 WSE 3.0 并为 service3 添加了参考。但是我无法在 t 中获取 RequestSoapContext 或 clientcredential 方法。client(o) 是从 soaphttpclientprotocol 而不是 WebServicesClientProtocol 生成的,这应该是所有问题的原因。请帮忙。

另外由于动态生成代理,我不确定我是否可以这样做

我也不确定 wsse type 。这个怎么定义。请注意,我使用的是 VS 2010

这是我的第一次服务体验,如果我犯了一些明显的错误,请原谅我。需要专家帮助。

0 投票
1 回答
4000 浏览

c# - 使用 SoapHttpClientProtocol 进行身份验证

我需要通过最前沿的端点请求 Web 服务。我使用基本身份验证。如果我使用此代码,它会完美运行:

我收到了 401 响应,然后发送了身份验证,我收到了响应。

如果我使用 SoapHttpClientProtocol,我有一个 302 响应,我现在不知道如何处理这个问题。你可以帮帮我吗。

0 投票
2 回答
1077 浏览

netsuite - SoapHttpClientProtocol 异常后自动重试?

我只是对此感到好奇。我正在对该项目进行更改,即使用 NetSuite Web 服务,有时它会随机抛出 SoapException,“一次只能针对会话发出一个请求”。

我的问题是:如果我处于调试模式,我会跟踪它,然后按 F5,它似乎会在抛出异常后自动重试(代码继续运行,没有实现 try catch 块,没有 while 循环)直到成功( status.isSuccess == true)。当我在发布模式下运行它时,作为 Windows 服务,日志显示它在引发异常后停止运行。

这怎么可能?在 try catch 块中捕获此异常并重试是否更好?

0 投票
1 回答
994 浏览

web-services - 无法将 System.Web.Services.Protocols.SoapHttpClientProtocol 覆盖为 Microsoft.Web.Services2.WebServicesClientProtocol

我的网站(3.5 版)具有对在 App_WebReference 文件夹中创建的外部 Web 服务的 Web 引用。此文件夹没有 Reference.cs(仅 .wsdl 和 .discomap 可用)。我可以在 ASP.NET 临时文件夹中的 dll 中找到代理类,该文件夹位于:C:\Users\Amit\AppData\Local\Temp\2\Temporary ASP.NET Files\core_webservices\2e1ad39b_shadow\16784daa\249954494\30312779\ App_WebReferences.c1uisrry.dll

这是类声明: public class Service1 : SoapHttpClientProtocol

我无法编辑它,因为它显示在 DLL 中。

我需要将继承覆盖如下,以便创建 WSE 2.0 支持的 SOAP 消息:

公共类 Service1:Microsoft.Web.Services2.WebServicesClientProtocol

请帮忙。谢谢!

我正在使用 VS Studio 2010 + WSE 2.0

0 投票
0 回答
91 浏览

jboss - 在控制台中打印 SOAP 标头中的内容

我想在我的 jboss-esb 控制台中打印肥皂标题中的内容,但我不能这样做。

我只能打印肥皂内容的正文,但不能打印标题部分中的内容。

任何人都可以帮助我打印 jboss 控制台中的 soupui 标头中的内容吗?

0 投票
2 回答
6426 浏览

c# - 如何在 SoapHttpClientProtocol 中设置 User-Agent 标头?

我在 ASP.NET MVC4 中调用第 3 方 SOAP 服务(Magento 网上商店)。导入 Web 服务引用时,所有服务方法都由 Visual Studio 自动实现,例如 login soap 方法实现为

但是当我调用这个方法时,this.Invoke发送一个自动添加了这个用户代理头的 POST:

此标头告诉第 3 方用户代理是 IE6。许多网站会自动阻止 IE6,并显示“我们不支持 IE6。去换个真正的浏览器再试一次”的消息。

所以肥皂电话中断,但只是因为第 3 方网站认为我们正在使用 IE6,而不是因为肥皂电话有任何问题。如果我们可以更改此标头以模仿现代 Web 浏览器的 UA 字符串,那么此问题将不存在。

那么如何更改 SoapHttpClientProtocol 方法调用使用的 UA 字符串呢?这一切都发生在方法内部,该this.Invoke方法是 .NET 核心的一部分。

编辑:

this上面自动生成的代码中的对象是 的子类SoapHttpClientProtocol,所以是的,我可以自己手动在其中编写用户代理:

但是,这是自动生成的代码,并且会在第 3 方更新他们的服务时被覆盖(对于 Magento,它非常频繁),我必须手动将它添加到每个自动生成的函数(很多)中。所以只写在这里是不切实际的this.UserAgent = "not IE6",它需要一个更有用的解决方案。