0

当对 http:// 地址进行 SOAP 调用时,它会自动尝试通过 https:// 连接我需要强制 SOAP 仅通过 http:// 连接有没有办法做到这一点?我已确保在 Apache 中未启用 MultiViews。

我什至尝试在不将其封装到类中的情况下进行简单的 SoapClient 调用,并在初始调用中包含登录名。

$soap = new \SoapClient('http://gotouri?wsdl, array(
    'login' => 'username',
    'password' => 'userpass',
    'trace' => 1,
    'exceptions' = 1
    )
);

这是我收到的 SOAP-FAULT 错误:

Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host in [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://www.do...', 'urn:Mage_Api_Mo...', 1, 0)

任何人都知道如何强制soap客户端使用http?

4

1 回答 1

0

我弄清楚了它自动解析 https:// 的原因。在服务器上的 XML 文件中,位置地址为 https://

<service name="MagentoService">
<port name="Mage_Api_Model_Server_HandlerPort" binding="typens:Mage_Api_Model_Server_HandlerBinding">
<soap:address location="https://www.thisguyssoapserver.com/index.php/api/soap/index/"/>
</port>
</service>

因此,我的 localhost SSL 无法正常工作。我不知道自签名证书是否可以让我进行此调用,但是在将代码推送到 gcloud 上的灯服务器后,我可以进行成功的肥皂调用。

于 2015-06-24T11:07:54.667 回答