- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 PHP 新手。经过大量搜索后,我设法以某种方式使用由 Java 和 PHP 创建的 Web 服务,但问题是 SoapClient 类的构造函数非常慢。这是我的 PHP 代码:
<?
require_once('SOAP/Client.php');
$url = "http://127.0.0.1:8024/_RS?wsdl";
$sc = new SoapClient($url);
?>
有时这需要长达 3 分钟的时间。我不知道问题是什么。创建构造函数后,我可以在 1 秒内在 for
循环中使用它 50 次,因此我非常确定构造函数是减慢代码速度的部分。
您认为是什么导致了这个问题?
提前谢谢您。
PS:更多信息在我的另一个问题中: https://stackoverflow.com/questions/5929669/call-a-wsdl-web-service-created-by-java-from-nushphere-phpedPPS:按照AJ的建议,我使用XDebug和kcachegrind来分析问题。正如你所看到的,我是对的。这是图片:
最佳答案
我也有同样的问题。使用部署在 Tomcat 上的相同 Web 服务,php SoapClient 速度非常快。我尝试执行“wget”来查看响应中的 header 是否不同,并且由于问题在于 WSDL 缓存,所以我发现的差异可能是原因:
使用 Tomcat:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Content-Length: 23925
Date: Thu, 08 Mar 2012 23:13:10 GMT
Connection: keep-alive
使用 Endpoint.publish(...)
HTTP/1.1 200 OK
Content-type: text/xml;charset=utf-8
Content-length: 23837
现在我只需要了解如何强制 Endpoint.publish(...)
插入 Server
、Date
、或连接
- header 。
(编辑)我找到了一个解决方案:问题不仅在于分块数据,还在于“保持 Activity ”。可以通过在stream_context 中设置 header “Connection: Close”来防止这种情况。请看下面:
class ImprovedSoapClient extends SoapClient
{
public function __construct($wsdlLocation)
{
parent::__construct(
$wsdlLocation
, array(
, 'cache_wsdl' => WSDL_CACHE_NONE
, 'stream_context'=>stream_context_create(
array('http'=>
array(
'protocol_version'=>'1.0'
, 'header' => 'Connection: Close'
)
)
)
)
);
}
}
关于java - PHP:SoapClient 构造函数非常慢(需要 3 分钟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5944067/
以下所有内容都在 Amazon EC2 中运行 几个月来我一直在使用 ExactTarget 的 API 发送电子邮件,但它在我的 QA 环境中停止工作了。以下所有代码在我的生产环境中都能正常工作。他
我需要将 PHP 的 SoapClient 与 myfile-ca.crt 一起使用。我如何告诉 SoapClient 构造函数使用客户端证书(crt 文件)? 我熟悉 php SoapClient,
我以这种方式向 WSDL 服务器发送请求: $soap = new SoapClient('WSDL_URI'); $soap->SomeFunction(array('Param1' => 123,
我正在使用带有 WSDL 的 PHP Soap 客户端来发送 SOAP 请求。 这就是我初始化 SoapClient 的方式: $options = [ "trace" => 1,
我正在拔头发。我尝试了很多不同的方法,但没有任何效果: 'localhost', 'proxy_port' => '8888' )); try { $test = new stdCl
这个问题在这里已经有了答案: Does this SOAP Fault mean what I think it means? (3 个答案) 关闭 8 年前。 除了这条错误信息,这里没什么可写的了
我正在尝试从运行该服务的同一台服务器上调用 Soap 客户端以进行测试。我的 WSDL 在:http://www.installittoday.com/api/server.php?wsdl我正在尝试
这个问题在这里已经有了答案: Does this SOAP Fault mean what I think it means? (3 个答案) 关闭 8 年前。 除了这条错误信息,这里没什么可写的了
我正在尝试从运行该服务的同一台服务器上调用 Soap 客户端以进行测试。我的 WSDL 在:http://www.installittoday.com/api/server.php?wsdl我正在尝试
我们需要连接的其中一个 WS 有 PHP 示例代码。他们为我们签署了 CSR ...所以我们现在有用于身份验证的私钥和证书。 他们建议将私钥和签名证书放入一个 .pem 文件,并在 PHP 中使用如下
我在 PhP 中有一个工作的soaprequest,我正在尝试创建一个需要相同调用的java程序,但是我真的很难找到在java中创建以下php代码的方法,我找到了许多网站解释java中的soap请求,
我创建新的 SoapClient $this->soap = new \SoapClient($this->wdls // WDLS with corect host , [ 'excepti
我有一个 Web 服务函数,它向 PHP 客户端返回一组项目。根据项目的数量,PHP 返回类型不同。如果函数返回一项,则 PHP 类型为 stdClass 如果函数返回多项,则 PHP 类型为 arr
我有一个 WSDL,它有一个需要属性的元素: Claim Element 就生成的 xml 而言,它应该如下所示:
我正在使用 SOAP 集成支付网关。当我使用 Wamp 调用服务功能时,它运行良好。但是在我的实时服务器上它给出了以下错误 - Class 'SoapClient' not found 我使用的代码是
我找到了许多关于 SoapClient 希望您如何在请求中设置属性的解释,但我就是找不到从响应中读取属性的方法。 例如,我的 SoapClient 响应中包含以下元素: ... JOWtest
当我发送以下请求时,出现“版本错误”异常。 上面的请求被转换成zend代码 $client = new zend_soap_client(null,
我是 web 服务的新手,我正在尝试使用 soapClient() 调用 web 服务,它生成的请求 XML 不是预期的格式 下面是请求XML的预期格式 MD
另一个 SOAP 问题 - 我有一个大的多维数组,当使用 print_r 时回显很好(例如,您可以看到所有数据)。当我使用 时出现问题 SOAPClient->__soapCall('Function
我最近从 PHP5.4 升级到 PHP7。天哪,这是一个变化,但这不是重点。 升级后我遇到了 SoapService 的问题。 这是我的 SoapRequest 在 PHP5.4 上的样子:
我是一名优秀的程序员,十分优秀!