我有一个脚本,它返回格式为
的字符串 {"showStatus":[{"large":980,"small":200,"title":"New Arrival<\/span>gothrough: Red","status":6,"Id":87643}],"totalStatus kers":2}1
我有curl代码,在登录后从其他网站获取此数据。我正在开发一个肥皂服务器,以便与其他服务器共享此细节,而不是再次登录并获取此数据。但我没有通过soap客户端在其他服务器上获取此数据。我的肥皂服务器代码是
<?php
$server = new SoapServer(null,
array('uri' => "urn://mytest/result"));
function get_data()
{
$cookie = 'cookie.txt';
$url1="http://example.com/city/getdata/";
$ch = curl_init();
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30');
curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_URL, $url1);
$result = curl_exec($ch);
return $result;
}
$server->addFunction('get_data');
$server->handle();
?>
其他服务器上的soap客户端正在使用此代码
$client = new SoapClient(null, array(
'location' => "http://x.x.x.x/soapserver/soapserver.php",
'uri' => "urn://mytest/result"));
$result = $client->
__soapCall("get_data");
echo $result;
?>
我输出的是“1”而不是那个字符串。如果您知道此
中的任何错误,请发表评论答案 0 :(得分:1)
您需要设置CURLOPT_RETURNTRANSFER
才能获得成功结果。
在curl_exec
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec()成功时返回TRUE,失败时返回FALSE。但是,如果设置了CURLOPT_RETURNTRANSFER选项,它将返回结果 成功时,失败就错了。