第八章 指定自定义 HTTP 请求

文章目录

  • [第八章 指定自定义 HTTP 请求](#第八章 指定自定义 HTTP 请求)
  • [自定义 `Web` 客户端的回调](#自定义 Web 客户端的回调)

第八章 指定自定义 HTTP 请求

默认情况下,Web 客户端使用 HTTPSOAP 消息传输到 Web 服务并接收响应。Web 客户端会自动创建并发送 HTTP 请求,但可以创建自定义 HTTP 请求。为此,请使用以下步骤:

  1. 在创建 %Net.HttpReques 的实例并根据需要设置属性。有关此类的信息,请参阅使用 Internet 实用程序或 %Net.HttpRequest类文档。
  2. Web 客户端的 HttpRequest 属性设置为等于此实例。

如果希望在同一会话中支持对 SOAP 服务的多次调用,这尤其有用。默认情况下, Web 客户端不支持使用同一会话对 SOAP 服务进行多次调用。要解决此问题,创建一个新的 %Net.HttpRequest 实例,并将其用作 Web 客户端的 HttpRequest 属性。此更改强制对所有调用重复使用相同的 HTTP 请求,这将在对下一个请求的响应中返回所有 cookie

自定义 Web 客户端的回调

可以通过覆盖其回调方法来定制 Web 客户端的行为:

%OnSOAPRequest()
java 复制代码
Method %OnSOAPRequest(mode As %String, 
                      client As %SOAP.WebClient,  
                      action As %String,  
                      oneWay As %Boolean,  
                      method As %String,  
                      requestStream As %BinaryStream)

Web 客户端调用传输类的 DoSOAPRequest() 方法(发出实际的 SOAP 请求)之前调用。默认的 DoSOAPRequest() 方法包含在 %SOAP.WebClient 中,并使用 HTTP 进行请求/响应。

  • mode 指定 SOAP 请求的类型("SOAP""binary")。
  • clientWeb 客户端实例的 OREF
  • action 包含 SOAPAction 标头的值。
  • 如果无需发送任何正文,则 oneWay 为真。
  • method参数是正在调用的 Web 方法的名称。
  • requestStream 参数包含流中的 SOAP 请求消息。
java 复制代码
Method %OnSOAPResponse(mode As %String, 
                       client As %SOAP.WebClient, 
                       action As %String, 
                       oneWay As %Boolean, 
                       method As %String, 
                       requestStream As %BinaryStream, 
                       responseStream As %BinaryStream, 
                       sc As %Status)

Web 客户端调用传输类的 DoSOAPRequest() 方法后调用。sc 参数是传输类的 DoSOAPRequest() 方法返回的状态。其他参数与 %OnSOAPRequest() 相同。

%OnSOAPFinished()
java 复制代码
%OnSOAPFinished()

Web 客户端执行完所有处理后调用。sc 参数是调用的 Web 方法返回的状态。modeclientmethod 参数与其他回调方法相同。

相关推荐
小突突突1 分钟前
个人博客系统测试报告
运维·网络·功能测试
O。o.尊都假都3 分钟前
socket套接字的超时控制
单片机·嵌入式硬件·网络协议
triticale14 分钟前
【Java】网络编程(Socket)
java·网络·socket
wanhengidc1 小时前
服务器中存储空间不足该怎么办?
运维·服务器·网络
soulermax1 小时前
数字ic后端设计从入门到精通4(含fusion compiler, tcl教学)CMOS VLSI Design
网络·硬件架构
bing_1582 小时前
什么是IoT长连接服务?
网络·物联网·长连接服务
christine-rr2 小时前
【25软考网工】第六章(4)VPN虚拟专用网 L2TP、PPTP、PPP认证方式;IPSec、GRE
运维·网络·网络协议·网络工程师·ip·软考·考试
小白自救计划3 小时前
网络协议分析 实验四 ICMPv4与ICMPv6
网络·网络协议
purrrew3 小时前
【Java ee初阶】网络编程 UDP socket
java·网络·网络协议·udp·java-ee
python算法(魔法师版)3 小时前
API安全
网络·物联网·网络协议·安全·网络安全