问题标签 [webservices-client]

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 回答
5967 浏览

java - 需要查看客户端与外部 Web 服务对话的 SOAP 消息 - 如何?(Eclipse/Netbeans/IDEA 好)

我有一种情况,我必须针对非常挑剔的外部 Web 服务(通过 https)编写 Java 客户端,并且我可以通过 Eclipse Java EE 中的 Web 服务资源管理器与 Web 服务对话。

不幸的是,我无法让客户正确询问,所以我真的很想看到 SOAP 消息来回传递。作为 Web 服务的新手,这有点像丛林。我对 Eclipse 非常熟悉,并且在 Netbeans 和 IntelliJ 上花了一些时间。

我真的非常喜欢使用 Metro 堆栈,因为它允许它在 Java 6 上运行,并且部署大小很重要。有没有一种简单的方法可以让 Metro 记录它所做的事情,或者让它通过 Eclipse 和 Netbeans 中的 TCP/IP 监视器进行通信?Metro 文档似乎主要针对 Web 服务作者而不是客户端,所以我可能很容易错过它。

对于设置说“这里是 WSDL - 为我生成一个可以看到流量的客户端”的设置有什么建议吗?

0 投票
0 回答
572 浏览

c# - 为什么 Web 服务代理方法上的访问修饰符很重要?

我正在使用从 WSDL 生成的 C# 客户端创建外部 Web 服务的接口。在这个客户端类中,我有带有签名的方法,例如: public ResponseType InvokeMethod(RequestType request). 我想将其访问修饰符更改为protected,但随后 Web 服务以“Web 服务方法名称无效”异常响应。你知道为什么会这样吗?我知道出于某些原因维护方法名称可能很重要,但为什么我不能更改此访问修饰符?不应该是我的代码问题,我想给这个方法什么访问权限?提前感谢所有答案。

0 投票
2 回答
10044 浏览

asp.net - 调用 Web 服务失败,HTTP 状态为 400 错误请求

我的 Web 应用程序调用 Web 服务时出现故障:

“/zVersion2a”应用程序中的服务器错误。请求失败,HTTP 状态为 400:错误请求。

这是指向网络服务本身的链接(有效):

http://www.zipeee.com/Zipeeewebservice/

这是在第一个页面加载时调用 WS 的 [生产] Web 应用程序的链接:

http://www.zipeee.com/Zipeee/

以下是调用同一 WS 失败的 [newVersion] Web 应用程序的链接:

http://www.zipeee.com/zVersion2/

这是调用页面中的源代码:

这是代理中 Reference.vb 的代码:

最后,这是webservice中的代码:

在这个运行 IIS 6.0 Windows 2003 的生产网络服务器上,默认网站中有 3 个虚拟目录(Zipeee、zVersion2、ZipeeeWebService)。

每个虚拟目录都指向网络服务器 C 盘上的一个单独的物理目录。生产 Zipeeee 和 newVersion zVersion2 都使用名为ProxyZipeeeService.dll的代理类. 我在发布主要项目Zipeee 及其所需的网络服务时非常小心。例如,在使用 Visual Studio2008 的开发服务器上,我已经构建并测试了所有 5 个项目(webservice1、webservice2、primarywebapp (iezipeee)、proxyclassforWS1、proxyclassforWS2)。所有这些 DLL 的最新版本都标有选择为 1.6 的程序集版本。它们都在我的开发机器上工作,我将 WS1、WS2 和 zipeee 发布到临时服务器(IIS 6.0),它们也都在那里工作。然后我发布到托管上述 URL 的公共服务器。新版本的 Web 应用程序位于 c 盘上的单独文件夹中,并由 vDir zVersion2 指向。它应该可以工作,但由于此 WS 错误,甚至无法呈现第一页。

我跟踪了 zVersion2 的失败(它在页面加载事件中调用 webmethod GetMessageByType 并立即失败)。在这里(不是很长,但这里的格式有点乱):

System.Web.Services.Asmx 信息:0:调用 XmlSerializer [创建 XmlSerializer] 方法:System.Xml.Serialization.XmlSerializer#1669721556::FromMappings(System.Xml.Serialization.XmlMapping[]#40041277=[356], ProxyZipeeeService。 WSZipeee.Zipeee#50200644=ProxyZipeeeService.WSZipeee.Zipeee) 调用者:System.Web.Services.Protocols.SoapClientType#24827179::.ctor(ProxyZipeeeService.WSZipeee.Zipeee#50200644=ProxyZipeeeService.WSZipeee.Zipeee) ProcessId=1456 LogicalOperationStack=ThreadId =1 DateTime=2010-08-06T01:58:45.6541439Z Timestamp=47298006836 System.Web.Services.Asmx 信息:0:从 XmlSerializer 返回 [创建 XmlSerializer] 调用方:System.Web.Services.Protocols.SoapClientType#24827179:: .ctor(ProxyZipeeeService.WSZipeee.Zipeee#50200644=ProxyZipeeeService.WSZipeee.Zipeee)ProcessId = 1456 LogicalOperationStack = ThreadId = 1 DateTime = 2010-08-06T01:58:45.7791255Z Timestamp = 47298376293 System.Web.Services.Asmx信息:0:调用XmlSerializer [创建XmlSerializer]方法:System.Xml.Serialization。 XmlSerializer#1669721556::FromMappings(System.Xml.Serialization.XmlMapping[]#64844482=[160], ProxyEmergencyService.WSEmergency.Emergency#88831384=ProxyEmergencyService.WSEmergency.Emergency) 调用者:System.Web.Services.Protocols.SoapClientType#46729429 ::.ctor(ProxyEmergencyService.WSEmergency.Emergency#88831384=ProxyEmergencyService.WSEmergency.Emergency) ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58:45.8572390Z Timestamp=47298680452 System.Web.Services.Asmx 信息: 0 : 从 XmlSerializer 返回 [创建 XmlSerializer] 调用者:System.Web.Services.Protocols.SoapClientType#46729429::.ctor(ProxyEmergencyService.WSEmergency.Emergency#88831384=ProxyEmergencyService.WSEmergency.Emergency) ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58:45.9353525Z Timestamp=47298924420 System.Web.Services.Asmx 信息:0:调用 XmlSerializer [写入请求] 方法:Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer192#13256970::Serialize(System.Xml.XmlTextWriter#52203868=.., System. Object[]#72766=[1], (null), (null)) 调用者:ProxyZipeeeService.WSZipeee.Zipeee#654897::Serialize() ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58: 46.0915795Z Timestamp=47299598906 System.Web.Services.Asmx 信息:0:从 XmlSerializer 返回 [Write Request] 调用方:ProxyZipeeeService.WSZipeee.Zipeee#654897::Serialize() ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58:46.0915795Z Timestamp=47299606361 System.Web.Services.Asmx 信息:0:调用 WebRequest.GetResponse方法:System.Net.HttpWebRequest#5894079::GetResponse() 调用者:ProxyZipeeeService.WSZipeee.Zipeee#654897::GetWebResponse() ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58:46.0915795Z Timestamp= 47299607492WSZipeee.Zipeee#654897::GetWebResponse() ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58:46.0915795Z Timestamp=47299607492WSZipeee.Zipeee#654897::GetWebResponse() ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58:46.0915795Z Timestamp=47299607492 System.Web.Services.Asmx 错误:0:在 ProxyZipeeeService.WSZipeee.Zipeee#654897::GetWebResponse 中捕获异常。 System.Net.WebException:远程服务器返回错误:(400)错误请求。ProcessId=1456 LogicalOperationStack=ThreadId=1 DateTime=2010-08-06T01:58:46.0915795Z Timestamp=47299629487 System.Web.Services.Asmx 错误:0:异常详细信息:System.Net.WebException:远程服务器返回错误: (400) 错误请求。在 System.Net.HttpWebRequest.GetResponse() 在 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest 请求) ProcessId=1456 LogicalOperationStack= ThreadId=1 DateTime=2010-08-06T01:58:46.0915795Z Timestamp=47299654807 System .Web.Services.Asmx 信息:0:调用 XmlSerializer [写入请求] 方法:Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer192#13256970::Serialize(System.Xml.XmlTextWriter#53046711=.., System.

0 投票
1 回答
883 浏览

wcf - 与 WCF 客户端连接

我正在尝试从 WCF .NET 客户端连接到基于 Java 的服务。服务的地址类似于https://xxxxx:4444/myownservice 我可以成功访问 https://servername:4444/myownservice/?WSDl上的 WSDL 但是当我运行代理客户端时,进程超时并且给了我这个错误信息

“无法连接到...... TCP错误代码10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接的主机未能响应xxxxx:4444

其中 xxxx 是服务器名称

我尝试使用端口号远程登录服务器,但远程登录失败(使用服务器名称或其 IP 地址)。我可以ping到服务器。

我的问题是:如果我可以使用 http://xxxxx:4444/servicename/?WSDL浏览 wsdl 是否意味着端口 4444 已打开?或不一定

0 投票
1 回答
1070 浏览

javascript - jsonp内存泄漏

所以我最近设置了一个 chrome 扩展来刷新页面并调用我编写的 jsonp Web 服务,但存在内存泄漏。我已经搜索了所有互联网以找到解决方案,但似乎没有任何效果。我使用了指定“jsonp”的普通 jQuery .ajax() 调用,我使用了http://code.google.com/p/jquery-jsonp/上的 jquery-jsonp 以及许多其他方法。 ..我无法让内存泄漏消失。有人可以指出我正在寻找的示例或指向正确方向的示例吗?我只需要看到一个脚本不断调用 jsonp 调用而不泄漏内存。

运行我的代码时,在我到达此代码之前没有泄漏:

如果我将该代码替换为:callback({ "d": "1", "pickCount": pickCount }); 那么泄漏就会消失。

0 投票
3 回答
288 浏览

asp.net - 使用密码调用 web 服务或 aspx 页面时的安全性

我想知道我是否有这样的网络服务:

或类似的页面

如果他们是从桌面应用程序调用的,那会更安全。从我读过的内容中,嗅探器可以读取请求并找出 url。我在将密码放入请求之前对密码进行哈希处理,但是如果有人看到带有参数/查询字符串的请求 url,那么他们可以使用相同的值发出请求!?

嗅探器找出散列密码的难易程度如何?我应该在将密码和用户名放入 url 和 Web 服务之前加密吗?我还有其他选择吗?

我问是因为数据不是那么敏感,但基本的安全性应该以最低的性能成本存在

注意:SSL 不是一个选项

0 投票
1 回答
252 浏览

asp.net - asp.net 应用程序可以与 Google 应用程序集成吗

希望通过使用基于 IIS7 的 Web 服务来驱动在我的 Google Apps 域上显示的内容。问“我如何使用 asp.net 驱动 Google Gadget”会更有成效吗?

0 投票
3 回答
364 浏览

vb.net - 不同平台之间的异步 Web 服务

我正在使用 VB.NET (2.0) 编写 Web 服务。客户端将使用不同的技术,例如 Java 和 Siebel。那么,如果我写异步Web服务,不同平台是否可以使用它们呢?我知道对于拥有 .NET 平台的消费者来说这很容易,但不确定是否适用于不同的平台。他们有异步能力就够了,还是应该是类似的平台?

0 投票
2 回答
933 浏览

blackberry - 黑莓应用程序中的 Web 服务存根

我目前正在开发一个使用 RPC 调用的概念验证 Blackberry 应用程序。我还在 .Net 中开发了一个非常基本的服务器应用程序,它只是为发送给它的字符串加上时间戳并将其返回给客户端。我已经能够使用 .Net 客户端和 Java 客户端连接到服务器应用程序,因此我相当有信心它可以正常工作。

对于 Blackberry 客户端应用程序,我使用Java Wireless Toolkit 2.5.2为 RPC 调用生成存根。然后,我在一个基本的 Blackberry 应用程序中使用这些调用来尝试复制 .Net 和 Java 客户端的结果,但它不断抛出异常。我不确定我是否正确使用了存根。

目前我在本地运行一切。服务器作为 localhost 运行,Blackberry 应用程序在 Blackberry 模拟器上运行。我已经使用黑莓浏览器检查我是否可以访问该服务并且我可以,所以问题不是网络连接。

抛出的异常如下:

java.io.interruptedIOException:本地连接在 ~ 120000 之后超时

0 投票
2 回答
3699 浏览

java - 重用 HttpsUrlConnection... 不想每次都获得新的连接。怎么复用?

我想调用一个安全的网络服务,使用我拥有的证书......服务器需要很长时间才能使用证书进行身份验证,而且,虽然第一次没问题,但用户会一遍又一遍地调用它(在相同的“会话”),我觉得我应该能够重用连接。

我有以下代码。

这很好用……但速度很慢。仅身份验证大约需要 10 秒。这种内部身份验证在这里很典型,无法加快速度。但是我不能以某种方式重用它吗?
我尝试在该代码url.connection和断开连接之间放置一个循环,以为我可以一次又一次地回忆它,但失败了(500)。我尝试过移动一些东西,以便第一次只执行一些命令,但它仍然失败。
我读到了keep-alive,但没有找到任何关于这是什么以及如何使用它的好例子(如果这甚至是一种有效的方式)。如果我通过 HTML、Firefox 或 IE 完成所有这些操作,我猜,浏览器能够缓存证书,所以每次在第一次之后都非常快。我可以模仿一些吗?