求大神~ 再不解决就要被老大爆菊了 本帖最后由 tazij 于 2012-11-29 09:27:32 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 客户端是这么写的吗?没用过 nusoap 不太清楚。感觉有点怪怪的如有样例代码,请给个出处服务端有个方法用来处理这个,由于验证不通过就不继续运行,所以不可绕过但是你客户端并没有提供方法名,难道 nusoap 有默认的方法? 上面这段代码,我在调用JAVA接口的时候就是用类似的代码,已经调通了,但是PHP这边我不知道怎么接受参数,本来我想写一个验证方法的,但是老大说验证方式最好是统一一点,所以要用一样的方式验证,我看过一片文章 http://blog.csdn.net/ydmdzq_helloworld/article/details/6978212,请帮忙鉴定一下有没有用,感激不尽啊 补充一下,我调用JAVA通过验证的时候用以上方法,对方也没有提供具体的验证方法的,他们说是通过header验证的。。 LZ 可以看下你java端的 soap头部验证吗? 谢谢! 其实我也不懂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); } }} 既那么说,这样应该就可以了$client -> setHeaders( array('UserName' => 'tazij', 'Password' => '123456') ); 这样不行,一定要我那种形式才可以,现在身份验证已经通过了,我目前的问题是,如果JAVA已这种形式给PHP传数据,PHP那边应该怎么接受数据啊? 有没有办法这样子来require() 求一sql语句 php类的一个简单问题 $DOM 操作时如何实现换行 怎样一开机就自动启动mysql?window2000系统的。 菜鸟问题 smarttemplate模板问题 那位说一下怎么使用正则表达式。 header的问题 如何在发表帖子的时候输入网址不变成链接呢? 预约系统的一个功能不知道如何实现,高手解决 php 递归查找父类
如有样例代码,请给个出处服务端有个方法用来处理这个,由于验证不通过就不继续运行,所以不可绕过
但是你客户端并没有提供方法名,难道 nusoap 有默认的方法?
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);
}
}
}
$client -> setHeaders( array('UserName' => 'tazij', 'Password' => '123456') );