xuyan5971 2010-07-22 17:46
浏览 321
已采纳

webservice 如何获取包头里的数据。

[code="java"]package axis2test;

import java.util.Iterator;

import javax.xml.namespace.QName;

import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11HeaderBlockImpl;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.engine.Handler;
import org.apache.axis2.handlers.AbstractHandler;
public class HandlerTest extends AbstractHandler implements Handler {

public InvocationResponse invoke(MessageContext arg0) throws AxisFault {
    SOAPEnvelope envelope = arg0.getEnvelope();
    SOAPHeader header = envelope.getHeader();
    return InvocationResponse.CONTINUE;
}

}

[/code]

我已经获取到了 header .header 信息是

[code="java"]


cp:usernamexy/cp:username
cp:passwd123456/cp:passwd
/cp:MessageHeader
/soapenv:Header

[/code]

请问如何获取 里面的username和passwd呢。试了header的好多方法都不行。

  • 写回答

1条回答 默认 最新

  • jiangguangxian 2010-07-23 21:27
    关注

    前段时间遇到过这样的问题,主要是调用.net webservice如何去获取header信息。
    你已经获得了header,但是如何获取具体的某个值呢。在api上提供了 一些方法,但是通过测试,这些方法获取不到。最后使出杀手锏。将header转为OMElement,也就是种对象数组的形式,然后遍历,如果
    [code="java"]
    String username = "";
    for(OMElement om:header.getChildNodes){ //这里可能函数有些不对,但是方法正确
    if(om.getName() == "username"){
    username = om.getValue();

    }}
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题