当对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-client使用http?
答案 0 :(得分: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上的灯服务器后,我可以成功拨打肥皂电话。