【问题标题】:Soap is not working in PHP肥皂在 PHP 中不起作用
【发布时间】:2013-12-19 10:12:26
【问题描述】:

我正在使用SoapClient,但我无法获得结果。我收到此错误:

由于内部错误,服务器无法处理请求。 有关错误的更多信息,请打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或从配置行为)在服务器上发送 异常信息返回给客户端,或者按照 Microsoft .NET Framework 3.0 SDK 文档并检查 服务器跟踪日志。

<?php
  $silverpop = new SoapClient($my_url, array('trace' => 1));
  /*$client =   new stdClass();
  $client->LoginID  =   'mylogin-id';
  $client->LicenceKey   =   'mylicense-key';*/

  $clientobj = (object) array("LoginID" => "mylogin-id", "LicenceKey" => "mylicense-key");

  try {
    //$var  =    $silverpop->__soapCall("GetServicesforPincode",array('P_Pincode'=>'110014','P_ClientObject'=>$clientobj));
    //$var  =   $silverpop->GetServicesforPincode('110014',$clientobj);
    $var = $silverpop -> __soapCall("GetServicesforPincode", array('110014', $clientobj));
  } catch (SoapFault $exception) {
    echo $exception -> getMessage();
  }

  echo '<pre>';
  print_r($var);
?>

我做错了什么?

【问题讨论】:

  • 你期待哪种类型的响应
  • 任何类型。直到现在我一直在寻找 XML
  • 酷。我在这篇文章中发布了一个解决方案。试一试,让我知道它是否有效

标签: php api soap


【解决方案1】:

要么您发送的数据不符合规范,要么您的 SoapServer 无法正常工作。我认为第一个作为 Soap 并不总是像它应该的那样清晰。由于看起来错误消息实际上是由 SoapServer 生成的,因此我建议检查架构以获取允许的参数/调用及其格式。如果这一切都正确,请检查您是否缺少标题等。

如果以上所有内容都正确,请修复您的 SoapServer。如果你还没有访问它,戳所有者。

【讨论】:

  • 我也是这么想的,数据不符合规范,但我尝试了所有可能的方法,但除了错误之外没有得到任何其他响应。如何检查肥皂是否正常
【解决方案2】:

试试{ $client = new SoapClient($my_url,array('trace' => 1)); $object = 新的 stdClass(); $object->LoginID = 'mylogin-id'; $object->LicenceKey = 'mylicense-key';

    $xml = simplexml_load_string($client->GetServicesforPincode($object));
    $json = json_encode($xml);
    print_r($json);
}

catch (SoapFault $exception) { echo $exception; }

【讨论】:

  • 警告:simplexml_load_string() 期望参数 1 为字符串,对象为 null
  • PinCode - value PincodeDescription- value AreaCode- value ServiceCenterCode- value DomesticPriorityInbound- value DomesticPriorityOutbound- value ApexInbound- value ApexOutbound- value GroundInbound- value GroundOutbound- value eTailCODAirInbound- value eTailCODAirOutbound- value eTailCODGroundInbound- value eTailCODGroundOutbound- value eTailPrePaidAirInbound- value eTailPrePaidAirOutound- value eTailPrePaidGroundInbound- value eTailPrePaidGroundOutbound- value DomesticPriorityTDD- value ApexTDD- value ErrorMessage- value IsError- value
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多