第一章 修改 Web 客户端
修改 Web
客户端
生成 Web
客户端类后,通常不需要编辑该类。相反,需要编写代码来创建该类的实例并提供客户端错误处理。本主题讨论了微调 Web
客户端的各种方法,可以通过修改 Web
客户端实例或(不太常见)修改生成的类来实现。
注意:不要创建生成的 Web
客户端类的子类。编译器不会生成正常运行所需的支持类,因此子类将无法使用。
禁用 Web
客户端的 Keep-Alive
默认情况下,如果重复使用 Web
客户端实例来发送多条请求消息,IRIS
会在一次 HTTP
传输中发送所有消息(使用 HTTP 1.1
保持活动连接)。具体来说,IRIS
保持 TCP/IP
套接字打开,这样 IRIS
就无需关闭并重新打开它。要禁用此保持活动行为,请执行以下操作之一:
- 终止
Web
客户端实例并创建并使用一个新的。 - 发送第一条消息后,将客户端的
HttpRequest.SocketTimeout
属性设置为0
。例如:
Set client.HttpRequest.SocketTimeout=0
注意:如果正在使用 WS-ReliableMessaging
并使用 SSL/TLS
与 Web
服务通信,请不要禁用保持活动。有关 WS-ReliableMessaging
的信息,请参阅保护 Web
服务。
控制空字符串参数的形式
通常,如果省略参数, Web
客户端会省略其发送的 SOAP
消息中的相应元素。要更改此设置,请在 Web
客户端类中将 XMLIGNORENULL
参数设置为 1
;在这种情况下,SOAP
消息包含一个空元素。
注意:此参数仅影响类型为 %String
的 Web
方法参数。
控制客户端超时
可以控制 Web
客户端的两个单独的超时期限:
-
Web
客户端的Timeout
属性是读取超时。这指定了Web
客户端等待响应的时间(以秒为单位)。
如果未指定此属性,则 Web
客户端将使用类中 %Net.HttpRequest
的 Timeout
属性指定的默认值。此默认值为 30
秒。
如果正在使用代理服务器,此属性将控制客户端等待代理响应的时间。
-
OpenTimeout
属性指定打开超时,即等待TCP/IP
连接打开的秒数。如果未指定此属性,则使用Timeout
指定的值。
网友评论