我可以使用java调用soap服务器,如下所示
Call call = new Call();
URL url = new URL("http://soap-something.dash.com/servlet/rpcrouter");
call.setTargetObjectURI("urn:login-transport");
call.setMethodName("confirmPassword");
call.setParams(a vector);
resp = call.invoke(url, "");但我的问题是如何使用curl和php调用相同的函数,我已经尝试过了,但它可能是某种有趣的代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://soap-something.dash.com/servlet/rpcrouter?urn:login-transport");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HEADERFUNCTION, "confirmPassword");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>"pritom", "password"=>"pritom"));
$head = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "<br/>HTTP CODE: " . $httpCode;
print_r($head);但是它回显了http代码100,并且我没有发现来自soap服务器的任何结果。但是我的soap服务器是正常的,通过java测试。
发布于 2012-01-08 19:41:24
在我看来没问题,除了CURLOPT_HEADER需要是true或false (在输出中是否包含HTTP头),
curl_setopt($ch, CURLOPT_HEADER, "confirmPassword");应该是
curl_setopt($ch, CURLOPT_HEADER, true);我只能猜测confirmPassword是什么,如果它是一个回调,你应该使用CURLOPT_HEADERFUNCTION。
但正如Ariel指出的那样,你没有告诉我们问题是什么。
发布于 2012-01-17 16:53:27
尝试删除此行:
curl_setopt($ch, CURLOPT_NOBODY, false); // remove body然后发布输出是什么。
https://stackoverflow.com/questions/8776493
复制相似问题