【问题标题】:soap function not returning string in php肥皂函数没有在php中返回字符串
【发布时间】:2016-09-15 10:28:15
【问题描述】:

我有一个脚本,它返回以下格式的字符串

 {"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”而不是那个字符串的输出。如果您知道其中有任何错误,请发表评论

【问题讨论】:

    标签: php curl soap server client


    【解决方案1】:

    您需要设置CURLOPT_RETURNTRANSFER 才能获得成功的结果。

    curl_exec之前添加这一行

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    

    curl_exec() 成功时返回 TRUE,失败时返回 FALSE。但是,如果设置了 CURLOPT_RETURNTRANSFER 选项,它将返回结果 成功,FALSE 失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多