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]

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

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏