问题标签 [new-webserviceproxy]

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 投票
1 回答
1527 浏览

.net - 如何像 PowerShell New-WebServiceProxy 一样使用 System.Net.WebClient?

与使用 C# 相比,我通过 PowerShell 连接到服务的问题是该服务需要在标头中传递一个密钥。

我可以使用new-WebServiceProxyURI 并让它传递默认凭据。这样我就可以拿到限时服务密钥了,但是对于后续的服务调用,没有办法传递密钥,导致报错没有有效的服务密钥。

我知道 cmdlet 使用System.Net.WebClient该类,并且它有一个我想尝试使用的可设置 headers 属性。我似乎无法让该类以与 cmdlet 相同的方式运行并返回一个对象。有谁知道怎么做?

这就是我正在使用的,但可以直接从 PowerShell 在 .Net 中实现:

那是我用来访问服务的 Powershell cmdlet。我想使用以下方法完成相同的操作:

我只是不知道如何使用 System.Net.WebClient 创建一个代理对象,让我可以访问该服务提供的所有成员。设置好之后,我可以获取 TimeLimitedServiceKey 并执行以下操作:

如果有人可以帮助我如何创建代理对象。

0 投票
1 回答
721 浏览

json - 使用 WebServiceProxy 时,ConvertFrom-JSON 不接受带有子级的 convertto-json

我正在使用 PowerShell 4.0 中的 New-WebServiceProxy 从 API 中提取数据,然后将其传送到 JSON 文件以供审查并导入另一个 API 服务(相同的 API 版本等,只是不同的主机)。

给我包含 TaskConfig 的 XML。在这种情况下,TaskConfig 是我正在与之交互的 API 自动生成的对象类型。当我想导入我正在使用的内容时:

但是当我运行它时,它无法创建对象。我认为这是因为 JSON 包含嵌套的子级,导致错误-

无法将值“@{Name=plugindive;Value=;> Children=System.Object[]}”转换为类型“Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1rcleWeb_WebClientAPI_asmx_wsdl.TaskConfig”。错误:“无法转换”@{Name=plugindive; Value=;Children=System.Object[]}” 类型“System.Management.Automation.PSCustomObject”的值以键入“Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1rcleWeb_WebClientAPI_asmx_wsdl.TaskConfig”。

我试过明确说明对象的类型:

以及创建对象然后尝试从我的 JSON 添加孩子 -

但这些都以同样的方式失败。

有趣的是,我似乎在 PowerShell 5.0 中没有遇到同样的问题,但我无法验证原因——还有其他方法可以解决这个问题吗?

在下面添加了示例 JSON

0 投票
1 回答
600 浏览

powershell - 向多个端点发送 New-WebServiceProxy SOAP 请求

第一次用PS,第一次写脚本!

我在我的主机上本地存储了一个 wsdl,它指向一个 localhost 端点。这是必要的,因为远程服务器不为 wsdl 提供服务。但是,它们是这些 SOAP 请求的有效端点。

我的网络中有多个端点,我想在引用静态 wsdl 的同时向每个端点发送 New-WebServiceProxy 请求。有没有办法使用本地 wsdl,但指定一个目标端点覆盖?

这是我目前拥有的(请原谅评论,我正在努力学习):

我计划在 servers.txt 中将其作为 ForEach 循环运行,但每次都需要能够在指向静态 wsdl 的同时设置不同的 URL。每台服务器都不为 wsdl 本身提供服务。

任何建议表示赞赏。

0 投票
1 回答
664 浏览

powershell - 如何在特定的命名 WSDL 端口上调用 SOAP 操作?

以前,在使用 PowerShell 调用 SOAP Web 服务时,生活很容易。运行,然后所有操作都可以在对象$myProxy = New-WebServiceProxy -Uri 'https://example.com/some/web/service.aspx?wsdl'上神奇地可用。$myProxy

但是,我最近同意帮助实现一个快速脚本,它允许我们将数据发送到此处详述的 SII Web 服务:https ://www.agenciatributaria.es/AEAT.internet/en_gb/Inicio/Ayuda/Modelos__Procedimientos_y_Servicios/Ayuda_P_G417____IVA__Llevanza_de_libros_registro__SII_ /Ayuda_tecnica/Informacion_tecnica_SII/WSDL_de_los_servicios_web/WSDL_de_los_servicios_web.shtml

我要连接的非生产网络服务应该是:https ://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP (即从上一个链接收到发票)。但是,尝试连接到该 URL 会失败。

我找到了一种解决方法,可以使用 URI 创建代理:https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas。 wsdl _ 但是,生成的代理并没有给我我期望看到的动作。查看底层 WSDL 似乎指定了多个端口;一些用于生产,另一些用于测试。我想确保我只连接到测试服务。

问题

如何确保我只连接到测试服务?

即对于 WSDL:https ://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl

...我如何确保我只连接到端口SuministroFactEmitidasPruebas

我目前的代码

这有效并显示了可用的操作,但没有说明我如何仅选择 TEST ( SuministroFactEmitidasPruebas) 端口。

0 投票
0 回答
382 浏览

windows - 使用 PowerShell 的 SOAP Web 服务的正确参数数量

我刚刚开始使用 PowerShell 和 SOAP Webservices。

我正在使用 New-WebserviceProxy,但无法找到正确数量的查询参数。

我尝试使用的服务方法如下所示:

在我看来,好像有 21 个参数,但是当我运行脚本时:

我收到消息“找不到“GetCases”的重载和参数计数:“21”。

proxy.GetCases 的输出:

如果有人能指出我正确的方向,我会非常高兴!

0 投票
0 回答
253 浏览

powershell - 远程 Powershell 会话未加载程序集

我有一个 powershell 脚本文件,当通过 winrm 执行时,它不会在某些 Windows 环境中正确执行。

下面的脚本在那台机器上执行得很好。

但是,如果通过 powershell 远程执行,它会失败。(“localhost”来自一个变量,所以我无法控制它,如果管理员选择在同一台机器上执行脚本,它就会变成 localhost。所以请不要问我为什么要执行脚本在本地机器上通过 winrm)

`

看起来会话没有加载正确的程序集!任何想法?

环境

很确定这不是远程配置,请参见下面作为远程命令运行的命令。

0 投票
2 回答
1085 浏览

javascript - 如何使用环回 4 执行发布请求

经过一番研究,我发现了环回代理服务,它允许我使用 get 方法进行一些查询。但我不知道如何使用请求正文中的数据执行 POST 请求。

我的服务

0 投票
1 回答
197 浏览

connector - Blazor WebAPI 到客户端反序列化异常 (PocoJsonSerializerStrategy)

我能够通过 Microsoft OData 连接器服务 Nuget 生成代理(使用 VS 2017)。这会生成代理就好了。

但是,当我尝试通过网络将实体发送到客户端时,我得到一个反序列化异常。使用服务参考/代理生成的实体/数据模型是否存在任何技术问题?

下面是当负载从我的 Web API 检索到客户端时我能够捕获的异常。

System.Reflection.TargetParameterCountException:指定的参数数量与预期数量不匹配。在 System.Reflection.RuntimeMethodInfo.ConvertValues (System.Reflection.Binder binder, System.Object[] args, System.Reflection.ParameterInfo[] pinfo, System.Globalization.CultureInfo 文化, System.Reflection.BindingFlags invokeAttr) <0x34ba990 + 0x00038 > 在 System.Reflection.RuntimeConstructorInfo.DoInvoke :0 处(System.Object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object[] 参数,System.Globalization.CultureInfo 文化)<0x36f4b28 + 0x0003a > 在 System.Reflection.RuntimeConstructorInfo.Invoke 中:0(System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object[] 参数,System.Globalization。

解决

能够通过使用 Henk 使用 Newstonsoft.Json 进行序列化的建议来解决此问题。

0 投票
1 回答
76 浏览

powershell - 将 New-WebServiceproxy 作为函数参数传递时出错

我正在尝试创建一个New-WebServiceProxy用作参数的函数,但出现错误。我的功能代码:

错误信息:

它不喜欢用破折号分隔的参数名称 [New-WebServiceproxy]。如何处理?

0 投票
0 回答
184 浏览

powershell - 使用 New-WebServiceProxy 命名空间和对象问题的 Powershell 肥皂

我正在尝试在powershell中编写一个soap请求服务已经启动我可以用soapui请求它。

在阅读了 thisthis之后,我没有设法将我的参数放在 ns.param 对象中。我什至无法创建 ns.param 对象。

如果您需要更多信息来回答,我会尽可能详尽,我会尽快提供。

我想调用这个方法:

在 IDE 中,自动完成显示标准是 ns.param[] 的类型

在此处输入图像描述

当我尝试获取 $scParam 变量的成员时,我收到一条错误消息:

最后,我用 python 和 zeep 库编写了相同的方法,当我将这个字典作为参数传递时,它工作得很好:

最后代码感谢您的帮助: