目前和java的做WebService
对方给了一个公网地址,打开后
对方的webservice 描述里面最下面是个内网域名,我用PHP请求他们的公网地址,直接没响应
用他们java的demo直接可以请求
请问怎么解决这个问题
我的代码如下
include_once("lib/nusoap.php");
$enc_data = 'test';
$client = new nusoap_client("http://公.网.I.P:8080/abmediadev/services/outWebService?wsdl",true); //访问的WebService地址
$client->debug_flag=true;
$return = $client->call('handleRequest', array('args0' => $enc_data)); //发送请求
if ($client->fault) {
echo 'Fault'. print_r($return);
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo 'Error'. $err;
} else {
// Display the result
echo 'Result' . print_r($return);
}
}
print_r($return); //输出返回结果
var_dump($client->getError()); //显示错误`
代码执行完返回如下
HTTP Error: Couldn't open socket connection to server http://10.4.16.203/services/outWebService.outWebServiceHttpSoap11Endpoint/, Error (110): Connection timed out
以下是webservice最下面的内容
<wsdl:port name="outWebServiceHttpEndpoint" binding="ns:outWebServiceHttpBinding">
<soap:address location="http://10.4.16.203/services/outWebService.outWebServiceHttpEndpoint/"/>
</wsdl:port>
我的代码里 是直接请求的他们的公网地址,现在直接返回内网ip 超时的错误,是不是他们公网帮我转发到内网导致的,还是PHP直接拿到了soap:address然后直接请求的内网,不太了解nusoap的执行原理。
对方说其他客户用php可以连他们,我有点怀疑我学的是不是盗版的PHP,哈哈
已解决