本帖最后由 tazij 于 2012-11-29 09:27:32 编辑

解决方案 »

  1.   

    客户端是这么写的吗?没用过 nusoap 不太清楚。感觉有点怪怪的
    如有样例代码,请给个出处服务端有个方法用来处理这个,由于验证不通过就不继续运行,所以不可绕过
    但是你客户端并没有提供方法名,难道 nusoap 有默认的方法?
      

  2.   

    上面这段代码,我在调用JAVA接口的时候就是用类似的代码,已经调通了,但是PHP这边我不知道怎么接受参数,本来我想写一个验证方法的,但是老大说验证方式最好是统一一点,所以要用一样的方式验证,我看过一片文章 http://blog.csdn.net/ydmdzq_helloworld/article/details/6978212,请帮忙鉴定一下有没有用,感激不尽啊
      

  3.   

    补充一下,我调用JAVA通过验证的时候用以上方法,对方也没有提供具体的验证方法的,他们说是通过header验证的。。
      

  4.   

    LZ 可以看下你java端的 soap头部验证吗? 谢谢!
      

  5.   

    其实我也不懂JAVA,不过我可以提供给你看一下他们验证的代码package chachaba.map.service;import org.codehaus.xfire.MessageContext;
    import org.codehaus.xfire.handler.AbstractHandler;
    import org.jdom.Element;public class AuthenticationHandler extends AbstractHandler 
    { public void invoke(MessageContext cfx) throws Exception 
    {
    if (cfx.getInMessage().getHeader() == null) {
    throw new org.codehaus.xfire.fault.XFireFault("请求必须包含验证信息",
    org.codehaus.xfire.fault.XFireFault.SENDER);
       }
       Element token = cfx.getInMessage().getHeader().getChild("AuthenticationToken");
       if (token == null) {
       throw new org.codehaus.xfire.fault.XFireFault("请求必须包含身份验证信息",
       org.codehaus.xfire.fault.XFireFault.SENDER);
       }

       String username = token.getChild("Username").getValue();
       String password = token.getChild("Password").getValue();
       try {
       // 进行身份验证 ,只有yw88@ccc0c325-fe67-4cad-baab-4ad9ebb4f927的用户为授权用户
       if (username.equals("yw88") && password.equals("ccc0c325-fe67-4cad-baab-4ad9ebb4f927"))
       // 这语句不显示
       System.out.println("身份验证通过");
       else
       throw new Exception();
       } catch (Exception e) {
       throw new org.codehaus.xfire.fault.XFireFault("非法的用户名和密码",
       org.codehaus.xfire.fault.XFireFault.SENDER);
       }
    }
    }
      

  6.   

    既那么说,这样应该就可以了
    $client -> setHeaders( array('UserName' => 'tazij', 'Password' => '123456') );
      

  7.   

    这样不行,一定要我那种形式才可以,现在身份验证已经通过了,我目前的问题是,如果JAVA已这种形式给PHP传数据,PHP那边应该怎么接受数据啊?