如果我只是粗心大意,请原谅我,但标头上的Spyne 文档似乎有点薄,并且指向示例代码的链接已损坏。我想我在这里找到了示例代码,但它似乎只能访问侦听器回调函数中的标头。如果可能,我需要在 srpc 方法中访问它。
我想做的是这样的(这不起作用):
class MyRequest(ComplexModel):
Messages = Array(Unicode)
class MyHeader(ComplexModel):
TrackingID = ByteArray
class MySoapService(ServiceBase):
@srpc(MyRequest, _in_header=MyHeader)
def PostMessages(req, hdr):
logging.info(u'RECEIVED: {0:s}'.format(hdr.TrackingID))
如果有帮助,我将尝试替换用 .NET 编写的服务,该服务仅在消息合同中定义消息头,如下所示:
[MessageContract]
public class MyRequest
{
[MessageHeader]
public Guid TrackingID { get; set; }
[MessageBodyMember]
public String[] Messages { get; set; }
}