问题标签 [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 投票
3 回答
9607 浏览

c# - ASMX web 服务参考如何设置 MaxReceivedMessageSize

Web 服务是一个 ASMX Web 服务(不是 WCF)

我收到一个错误

已超出传入邮件 (65536) 的最大邮件大小配额。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性

当您添加“Web 引用”时,我正在使用 Visual Studio 为您生成的代理(请注意,我没有添加“服务引用”,而是使用 Web 引用)...这将创建一个继承自SoapHttpClientProtocol

谁能帮我弄清楚如何MaxReceivedMessageSize为此方法设置等效项?HttpBinding.MaxReceivedMessageSize = Int32.MaxValue(如果我使用 WCF ,我要求相当于做的事情)

0 投票
2 回答
6944 浏览

c# - System.Web.Services.Protocols.SoapHttpClientProtocol 使用什么版本的 SSL/TLS?

现在发现 SSL 3 容易受到POODLE攻击:

连接到任何 https Uri 时,System.Web.Services.Protocols.SoapHttpClientProtocol 使用什么版本的 SSL/TLS?

我使用 SoapHttpClientProtocol 连接到几个第 3 方 SOAP API。其中之一现在表示他们将阻止任何使用 SSL 3 的请求。但 SoapHttpClientProtocol 是 .Net 核心框架(使用 4.5)的一部分,因此它使用什么版本的 SSL 或如何覆盖该版本并不明显。

请注意,此问题与 System.Net.WebRequest 支持哪些 SSL/TLS 版本?. 我使用了几个 API,有些是 REST(另一个问题是针对那些),有些是 SOAP(这个问题是针对那些)

0 投票
1 回答
1856 浏览

c# - SoapHttpClientProtocol 接收到意外的内容类型

wsdl.exe我通过-URL创建了一个 C# 代理类WSDL。我在我无法控制的 Web 应用程序的上下文中使用此代理类(因此无法更改 aweb.conf或类似内容)。我也无法更改正在与之交谈的 Web 服务中的任何内容。

调用 Web 服务时,我收到以下异常:

根据我的阅读,这是Web 服务使用MTOM的问题。现在我试图告诉我的班级接受 MTOM,但我发现的只是web.conf.

代理类派生自SoapHttpClientProtocol并且看起来像这样(相关部分):

try ... catchin是一个 hacky 解决方法,可以从getDocuments异常中获取“真正的”服务响应Message——这并不是我真正想要实现的方式。

所以我的问题是:有没有办法改变代理类中的绑定来接受MTOM响应?

0 投票
1 回答
377 浏览

c# - 尽管已使用 .NET CF 3.5 在 WM 6.5 上成功发送消息,SoapHttpClientProtocol 仍会引发 ConnectFailure

这是一个棘手的问题。

这是一个运行 .net Compact Framework 3.5.9085.00 的 Windows Mobile 6.5 设备,通过自动生成的 SOAP 代理(System.Net.SoapHttpClientProtocol (C#) 的子类)进行简单的自动生成的 Web 服务调用

对 doInvoke() 的调用几乎会立即引发 System.Net.WebException,因为它没有连接到网络。通常这表明某种网络代理或连接错误,但是当我在网络服务地址上放置一个简单的日志服务器时,我可以看到接收到的 POST 响亮而清晰,因此它显然可以连接到网络。

相同的代码在同一型号的另一台设备上运行良好。当我使用简单的日志记录服务器时,我可以看到与另一台设备相同的 POST,但这个最终会抛出 System.Net.WebException: The operation has timed-out 相反(它会,因为它不会得到一个答复)。

我很困惑。毫无疑问,导致问题的两者之间存在一些配置差异,但我不知道是什么。

就好像第一个设备已经建立了一个到服务器的只写连接,当它试图读取响应时它会掉下来,但我以前从未听说过这种情况。

有人对这个有任何启发吗?

0 投票
0 回答
37 浏览

asp.net - “SoapHttpRouter”动态编辑 SoapRequest

我被困在开发 ASP.NET 应用程序中。问题是我们使用的是 SoapHttpRouter 类和方法

protected override Uri ProcessRequestMessage(SoapEnvelope message)

已被覆盖。但是,我还想在将 SoapEnvelope 变量发送到目的地之前对其进行编辑,例如编辑所有请求中的标头或正文。收到原始 SoapEnvelope 后,我只在查询 SQL 中的一些信息后才知道新值。我想知道是否有办法做到这一点,也许使用另一种类型的路由器或另一种解决方法。

提前谢谢你,你太棒了。

0 投票
1 回答
1846 浏览

c# - 如何从对象类型创建 SOAP 请求?

让我先描述我的意图是什么,然后进入我的问题。

我正在尝试构建一个与 SOAP 服务通信的系统,其中 SOAP 请求在运行时有些未知。最终我需要做的是从未知对象生成一个 SOAP 请求。我将使用适当的属性和属性从头开始动态创建对象,然后将其传递给我的服务“请求”方法以发送到 SOAP 服务。这是我一直在使用的代码,然后是我收到的错误。

SOAP 客户端:

测试模型:(不会有任何预定义的模型,它们是动态生成的。但出于测试目的,我使用此模型进行测试)

测试调用代码:

当我运行此代码时,此行出现错误:

这是错误:

类型 Services.Soap.Models+ParentNode 不是预期的。使用 XmlInclude 或 SoapInclude 属性指定静态未知的类型。

现在,如果我将服务“请求”方法的参数更改为强类型,则请求构建良好并传递给 SOAP 服务,就像这样。

我已经尝试了大约 50 种方法来让它工作,包括将类型作为参数传递给请求方法并创建要传递的对象的“动态”实例。

这不起作用,因为“已转换”仍被视为对象类型。

我还尝试在“GetWriterForMessage”方法中截取soap 信封,这样我就可以构建自己的信封,但我无法使用它。

所以我的问题是,如何使用参数类型的对象成功构建 SOAP 请求?我应该采取另一种方法来使我的架构正常工作吗?

0 投票
1 回答
1250 浏览

c# - 获取 sharepoint 应用程序中集合中的最后修改日期

我有一个 asp.net Web Api 应用程序,它通过 Web 服务与共享点应用程序通信。

我添加此方法以使用 http 请求创建列表引用

这是我第一次与共享点应用程序进行通信。我需要调用一个服务,该服务将列表名称作为参数并返回此列表中的最后修改日期。在问这个问题之前我用谷歌搜索过,但我没有找到解决方案。

有任何想法吗?

0 投票
1 回答
670 浏览

java - 如何在 Java 中创建持久的 Http 连接

我想创建不应该关闭的保持连接。我尝试了以下方式,但它在打印日期后关闭。

下面通过 curl 测试的是实际输出:

curl -i -X GET -H “连接:保持活动” http://localhost:1122/

HTTP/1.1 200 正常

2018 年 8 月 2 日星期四 18:42:30 IST

预期结果是:

curl -i -X GET -H “连接:保持活动” http://localhost:1122/

HTTP/1.1 200 正常

2018 年 8 月 2 日星期四 18:42:30 IST

2018 年 8 月 2 日星期四 18:47:30 IST

2018 年 8 月 2 日星期四 18:52:30 IST

... 很快

如何创建保持连接?

0 投票
0 回答
989 浏览

c# - 将 wsa 标头添加到 SOAP 调用

在调用 SOAP WS 时,我们必须在 SOAP 标头中指定 wsa。它看起来像这样:

我们已经使用 wsdl.exe 从 wsdl 自动生成代理

为了避免修改自动生成的代码,我想添加一个新的部分类来完成这项工作。我喜欢这种方法,所以我最终得到了这段代码:

问题是此代码不起作用,并且在调用时出现异常base.GetWebRequest(uri)

由于我不确定我是否走在正确的轨道上,所以我在这里寻求帮助。

即使解决了上述问题,我仍然必须将正确的 wsa 命名空间指定为 Heder 属性。

[编辑] URI(针对在同一台机器上运行的 SoapUI 端点进行测试):

HttpWebClientProtocol.GetWebRequest[edit2]返回 webRequest 时抛出异常(最后一行):

0 投票
1 回答
582 浏览

c# - C# SoapHttpClientProtocol - 设置本地绑定地址(源地址)

我正在尝试对业务合作伙伴托管的 Web 服务进行 Soap 调用。我遇到的问题是我们的客户端托管在具有多个 IP 的虚拟 PC 上。我想用不同的(非默认)IP 地址调用托管的 Web 服务。这是为什么?我们的客户端应用程序和托管 Web 服务之间存在 VPN 连接,但它是在两个 IP 之间设置 LAN2LAN。现在我必须更改本地源 IP 地址以匹配 VPN 要求。

我曾尝试使用 SoapHttpClientProtocol 的 WebProxy,将其值设置为新 IP,但它似乎不起作用。我收到 HTTP 404 错误。

这是一些代码:

我 HTTP 发布用户代码和返回值应该是来自 SAP 的用户数据,目前我收到 404 http 错误代码。相比之下,它就像来自 SoapUI 的魅力。也许设置代理不是我想要的?任何帮助将非常感激。

编辑:为了更清楚目前,默认情况下从默认 ip 91.185.201.88 调用服务。服务的 IP 是 10.67.145.70。我想这样改变它:从 192.168.4.2 调用服务到服务的 10.67.145.70。