甜蜜的男子56:求助,如何获取WEB服务响应回来的值?

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 02:08:06
我想要获取根据我所发出的SOAP消息所获得的WEB服务的响应值,如果说是用response.getresponsestream()的话不行,那会获得整个SOAP的,我只要BODY里面的返回值!谢谢了!!
我使用的是C#语言,所以如果真的知道就请说详细点,别复制粘贴,谢谢了

从响应消息中检索内容

客户端使用onMessage方法检索消息内容。客户端通过消息得到envelope,再通过envelope得到body,从而访问SOAPBody对象。访问SOAPBody对象是因为内容存放在该元素中。为了检索由Node.addTextNode方法添加的内容,请调用Node.getValue方法。GetValue返回调用元素的直接子元素的值。为了访问bodyElement,需要在body上调用getChildElement方法。以下代码演示了如何从响应消息中检索内容。

public SOAPMessage onMessage(SOAPMessage message)

{

SOAPEnvelop env = msg.getSOAPPart().getEnvelope();

env getBody()
.addChildElement(env.createName("Response"))
.addTextNode("This is a Response");

return msg;

}

想要从含有附件的消息中检索内容,你需要访问附件。没有参数的情况下,SOAPMessage.getAttachments方法返回指向所有AttachmentPart对象的java.util.Iterator对象。以下代码打印出了SOAPMessage对象消息中每一个AttachmentPart对象的内容。

java.util.Iterator it = message.getAttachments();

while (it.hasNext()) {

AttachmentPart attachment = (AttachmentPart)it.next();
Object content = attachment.getContent();
String id = attachment.getContentId();
System.out.print("Attachment " + id + " contains: " + content);
System.out.println("");

}

访问消息的附件部分

当收到带有附件的消息或是希望改变消息附件的时候,都需要访问消息的附件。没有附加信息的SOAPMesssage.getAttachments方法返回指向消息中所有AttachmentPart对象的java.util.Iterator对象。以下代码演示了如何访问附件从而获得SOAPMessage对象消息中每个AttachmentPart对象的内容。

java.util.Iterator it = msg.getAttachments();

while (it.hasNext()) {

AttachmentPart ap = it.next();
Object content = ap.getContent();
String id = ap.getContentId();
System.out.print("Attachment " + id + " contains: " + content);
System.out.println("");

}

组装并部署SOAP客户端